diff --git a/Build/BuildDavid.fbl5 b/Build/BuildDavid.fbl5 new file mode 100644 index 00000000..292c8fe6 Binary files /dev/null and b/Build/BuildDavid.fbl5 differ diff --git a/Build/BuildDavid.fbv b/Build/BuildDavid.fbv new file mode 100644 index 00000000..03bd93ba --- /dev/null +++ b/Build/BuildDavid.fbv @@ -0,0 +1 @@ + diff --git a/Build/BuildDavid.fbw b/Build/BuildDavid.fbw new file mode 100644 index 00000000..e69de29b diff --git a/Build/BuildDavid.fbz5 b/Build/BuildDavid.fbz5 new file mode 100644 index 00000000..f1400e37 Binary files /dev/null and b/Build/BuildDavid.fbz5 differ diff --git a/Build/BuildRoberto.fbl5 b/Build/BuildRoberto.fbl5 new file mode 100644 index 00000000..35de7207 Binary files /dev/null and b/Build/BuildRoberto.fbl5 differ diff --git a/Build/BuildRoberto.fbv b/Build/BuildRoberto.fbv new file mode 100644 index 00000000..03bd93ba --- /dev/null +++ b/Build/BuildRoberto.fbv @@ -0,0 +1 @@ + diff --git a/Build/BuildRoberto.fbw b/Build/BuildRoberto.fbw new file mode 100644 index 00000000..e69de29b diff --git a/Build/BuildRoberto.fbz5 b/Build/BuildRoberto.fbz5 new file mode 100644 index 00000000..afeaff84 Binary files /dev/null and b/Build/BuildRoberto.fbz5 differ diff --git a/Build/buildlog.html b/Build/buildlog.html new file mode 100644 index 00000000..0e2e5dd8 --- /dev/null +++ b/Build/buildlog.html @@ -0,0 +1,2656 @@ + + + + + + +FinalBuilder Log for Project BuildDavid.fbz5 + + +

FinalBuilder 5 LogFile for BuildDavid.fbz5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Project File :T:\Codigo (Luis Leon)\Build\BuildDavid.fbl5
Log Title :BuildDavid.fbz5
Date :07/06/2007
Start Time :18:20:38
End Time :18:23:14
Run Time :00:02:35

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusAction NameDescriptionStart TimeEnd TimeRun TimeOutput
Show All
Hide All
-Action ListAction List: Main18:20:3818:23:1400:02:35
CompletedCompile Delphi Win32 ProjectCompile Modulos\Contactos\Views\Contactos_view.dpk18:20:3818:20:4100:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Contactos\Plugin\Contactos_plugin.dpk18:20:4118:20:4200:00:01View
+
+
CompletedAction GroupFamilias18:20:4218:20:4200:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Familias\Model\Familias_model.dpk18:20:4218:20:4300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Familias\Data\Familias_data.dpk18:20:4318:20:4300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Familias\Controller\Familias_controller.dpk18:20:4318:20:4400:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Familias\Views\Familias_view.dpk18:20:4418:20:4500:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Familias\Plugin\Familias_plugin.dpk18:20:4518:20:4600:00:00View
+
+
CompletedAction GroupAlmacenes MDC18:20:4618:20:4600:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Almacenes\Model\Almacenes_model.dpk18:20:4618:20:4700:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Almacenes\Data\Almacenes_data.dpk18:20:4718:20:4800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Almacenes\Controller\Almacenes_controller.dpk18:20:4818:20:4900:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Almacenes\Views\Almacenes_view.dpk18:20:4918:20:5000:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Almacenes\Plugin\Almacenes_plugin.dpk18:20:5018:20:5100:00:01View
+
+
CompletedAction GroupArtículos MDC18:20:5118:20:5100:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Articulos\Model\Articulos_model.dpk18:20:5118:20:5200:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Articulos\Data\Articulos_data.dpk18:20:5218:20:5300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Articulos\Controller\Articulos_controller.dpk18:20:5318:20:5400:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Articulos\Views\Articulos_view.dpk18:20:5418:20:5500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Articulos\Plugin\Articulos_plugin.dpk18:20:5518:20:5700:00:01View
+
+
CompletedAction GroupVentas18:20:5718:20:5700:00:00
CompletedAction GroupRecibos de cliente MDC18:20:5718:20:5700:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de cliente\Model\RecibosCliente_model.dpk18:20:5718:20:5800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de cliente\Data\RecibosCliente_data.dpk18:20:5818:20:5800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de cliente\Controller\RecibosCliente_controller.dpk18:20:5818:21:0000:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de cliente\Views\RecibosCliente_view.dpk18:21:0018:21:0100:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de cliente\Plugin\RecibosCliente_plugin.dpk18:21:0118:21:0300:00:01View
+
+
CompletedAction GroupRemesas de cliente MDC18:21:0318:21:0300:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Remesas de cliente\Model\RemesasCliente_model.dpk18:21:0318:21:0400:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Remesas de cliente\Data\RemesasCliente_data.dpk18:21:0418:21:0500:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Remesas de cliente\Controller\RemesasCliente_controller.dpk18:21:0518:21:0600:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Banca electronica\Controller\BancaElectronica_controller.dpk18:21:0618:21:0700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Banca electronica\Views\BancaElectronica_view.dpk18:21:0718:21:0800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Remesas de cliente\Views\RemesasCliente_view.dpk18:21:0818:21:1000:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Remesas de cliente\Plugin\RemesasCliente_plugin.dpk18:21:1018:21:1100:00:01View
+
+
CompletedAction GroupPedidos de cliente MDC18:21:1118:21:1100:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos de cliente\Model\PedidosCliente_model.dpk18:21:1118:21:1200:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos de cliente\Data\PedidosCliente_data.dpk18:21:1218:21:1300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.dpk18:21:1318:21:1400:00:01View
+
+
CompletedAction GroupAlbaranes de cliente MDC18:21:1418:21:1400:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de cliente\Model\AlbaranesCliente_model.dpk18:21:1418:21:1500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de cliente\Data\AlbaranesCliente_data.dpk18:21:1518:21:1600:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de cliente\Controller\AlbaranesCliente_controller.dpk18:21:1618:21:1700:00:01View
+
+
CompletedAction GroupFacturas de cliente MDC18:21:1718:21:1700:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de cliente\Model\FacturasCliente_model.dpk18:21:1718:21:1800:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de cliente\Data\FacturasCliente_data.dpk18:21:1818:21:1900:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de cliente\Controller\FacturasCliente_controller.dpk18:21:1918:21:2100:00:01View
+
+
CompletedAction GroupComisiones MDC18:21:2118:21:2100:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Comisiones\Model\Comisiones_model.dpk18:21:2118:21:2200:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Comisiones\Data\Comisiones_data.dpk18:21:2218:21:2300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Comisiones\Controller\Comisiones_controller.dpk18:21:2318:21:2400:00:01View
+
+
CompletedAction GroupCompras18:21:2418:21:2400:00:00
CompletedAction GroupPedidos de proveedor MDC18:21:2418:21:2400:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Model\PedidosProveedor_model.dpk18:21:2418:21:2500:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Data\PedidosProveedor_data.dpk18:21:2518:21:2600:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.dpk18:21:2618:21:2700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.dpk18:21:2718:21:2900:00:01View
+
+
CompletedAction GroupRecibos de proveedor18:21:2918:21:2900:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de proveedor\Model\RecibosProveedor_model.dpk18:21:2918:21:3000:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de proveedor\Data\RecibosProveedor_data.dpk18:21:3018:21:3100:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de proveedor\Controller\RecibosProveedor_controller.dpk18:21:3118:21:3200:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de proveedor\Views\RecibosProveedor_view.dpk18:21:3218:21:3300:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recibos de proveedor\Plugin\RecibosProveedor_plugin.dpk18:21:3318:21:3400:00:01View
+
+
CompletedAction GroupLogística18:21:3418:21:3400:00:00
CompletedAction GroupInventario MDC18:21:3418:21:3400:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Inventario\Model\Inventario_model.dpk18:21:3418:21:3500:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Inventario\Data\Inventario_data.dpk18:21:3518:21:3600:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Inventario\Controller\Inventario_controller.dpk18:21:3618:21:3800:00:01View
+
+
CompletedAction GroupAlbaranes de proveedor MDC18:21:3818:21:3800:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Model\AlbaranesProveedor_model.dpk18:21:3818:21:3900:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Data\AlbaranesProveedor_data.dpk18:21:3918:21:4000:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.dpk18:21:4018:21:4100:00:01View
+
+
CompletedAction GroupFacturas de proveedor MDC18:21:4118:21:4100:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de proveedor\Model\FacturasProveedor_model.dpk18:21:4118:21:4200:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de proveedor\Data\FacturasProveedor_data.dpk18:21:4218:21:4300:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de proveedor\Controller\FacturasProveedor_controller.dpk18:21:4318:21:4500:00:01View
+
+
CompletedAction GroupRelaciones18:21:4518:21:4500:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de cliente - Pedidos a proveedor\PedCli_PedProv_relation.dpk18:21:4518:21:4700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de cliente - Albaranes de cliente\PedCli_AlbCli_relation.dpk18:21:4718:21:4900:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.dpk ]18:21:4918:21:5100:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.dpk ]18:21:5118:21:5400:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.dpk ]18:21:5418:21:5600:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de cliente - Albaranes de cliente\PedCli_AlbCli_relation.dpk ]18:21:5618:21:5700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de cliente - Pedidos a proveedor\PedCli_PedProv_relation.dpk18:21:5718:21:5900:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.dpk18:21:5918:22:0100:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Relaciones\Pedidos de proveedor - Facturas de proveedor\PedProv_FacProv_relation.dpk18:22:0118:22:0300:00:01View
+
+
CompletedAction GroupVistas - Plugin18:22:0318:22:0300:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos de cliente\Views\PedidosCliente_view.dpk18:22:0318:22:0600:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.dpk18:22:0618:22:0800:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de cliente\Views\AlbaranesCliente_view.dpk18:22:0818:22:1200:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de cliente\Plugin\AlbaranesCliente_plugin.dpk18:22:1218:22:1500:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de cliente\Views\FacturasCliente_view.dpk18:22:1518:22:1800:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de cliente\Plugin\FacturasCliente_plugin.dpk18:22:1818:22:2100:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Inventario\Views\Inventario_view.dpk18:22:2118:22:2300:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Inventario\Plugin\Inventario_plugin.dpk18:22:2318:22:2600:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Views\PedidosProveedor_view.dpk18:22:2618:22:3000:00:04View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Pedidos a proveedor\Plugin\PedidosProveedor_plugin.dpk18:22:3018:22:3400:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.dpk18:22:3418:22:3700:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.dpk18:22:3718:22:4200:00:04View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Banca electronica\Plugin\BancaElectronica_plugin.dpk18:22:4218:22:4300:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Comisiones\Views\Comisiones_view.dpk18:22:4318:22:4500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Comisiones\Plugin\Comisiones_plugin.dpk18:22:4518:22:4700:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.dpk18:22:4718:22:5000:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.dpk18:22:5018:22:5400:00:04View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de proveedor\Views\FacturasProveedor_view.dpk18:22:5418:22:5800:00:03View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Facturas de proveedor\Plugin\FacturasProveedor_plugin.dpk18:22:5818:23:0200:00:04View
+
+
CompletedAction GroupTienda Web18:23:0218:23:0200:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\Tienda web\Model\TiendaWeb_model.dpk18:23:0218:23:0300:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Tienda web\Data\TiendaWeb_data.dpk18:23:0318:23:0400:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Tienda web\Controller\TiendaWeb_controller.dpk18:23:0418:23:0600:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Tienda web\Views\TiendaWeb_view.dpk18:23:0618:23:0700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Tienda web\Plugin\TiendaWeb_plugin.dpk18:23:0718:23:0900:00:01View
+
+
CompletedAction GroupCliente18:23:0918:23:0900:00:00
CompletedCompile Delphi Win32 ProjectCompile Cliente\FactuGES.dpr18:23:0918:23:1100:00:02View
+
+
CompletedAction GroupComprimir ejecutables18:23:1118:23:1100:00:00
CompletedASPack Compress ExecutableComprimir servidor18:23:1118:23:1300:00:01View
+
+
CompletedASPack Compress ExecutableComprimir cliente18:23:1318:23:1400:00:00View
+
+
CompletedExport LogExport Log18:23:1418:23:1400:00:00


+ + + diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB new file mode 100644 index 00000000..d5d44e88 Binary files /dev/null and b/Database/FACTUGES.FDB differ diff --git a/Database/VISTAS.SQL b/Database/VISTAS.SQL new file mode 100644 index 00000000..1e979d40 --- /dev/null +++ b/Database/VISTAS.SQL @@ -0,0 +1,2009 @@ +/* +VISTAS RELATIVAS A PEDIDOS Y ALBARANES +*/ +DROP VIEW V_INVENTARIO; +DROP VIEW V_INVENTARIO_AUX; + +DROP VIEW V_INV_STOCK; +DROP VIEW V_INV_STOCK_AUX; +DROP VIEW V_INV_ENTRADAS_PENDIENTES; +DROP VIEW V_INV_SALIDAS; +DROP VIEW V_INV_SALIDAS_AUX; +DROP VIEW V_INV_SALIDAS_MOV; + +DROP VIEW V_INV_ENTRADAS; +DROP VIEW V_INV_ENTRADAS_AUX; +DROP VIEW V_INV_ENTRADAS_MOV; +DROP VIEW V_INV_ENTRADAS_ALB; + +DROP VIEW V_INV_RESERVAS; +DROP VIEW V_INV_SALIDAS_ALB; + +DROP VIEW V_PED_CLI_ART_PEND_PEDIR_PROV; + +DROP VIEW V_PEDIDOS_CLIENTE; +DROP VIEW V_PED_CLI_SITUACION; +DROP VIEW V_PED_CLI_ARTICULOS; +DROP VIEW V_PED_CLI_ARTICULOS_AUX; +DROP VIEW V_PED_CLI_ART_SITUACION_CANT; +DROP VIEW V_PED_CLI_ART_SITUACION; +DROP VIEW V_PED_CLI_DETALLES; +DROP VIEW V_ALB_CLI_DETALLES; +DROP VIEW V_ALBARANES_CLIENTE; +DROP VIEW V_ALB_CLI_SITUACION; + +DROP VIEW V_PEDIDOS_PROVEEDOR; +DROP VIEW V_PED_PROV_SITUACION; +DROP VIEW V_PED_PROV_PARCIALMENTE; +DROP VIEW V_PED_PROV_RECIBIDOS; +DROP VIEW V_PED_PROV_NUM_ARTICULOS; +DROP VIEW V_PED_PROV_ARTICULOS_RECIBIDOS2; + +DROP VIEW V_PED_PROV_ARTICULOS; +DROP VIEW V_PED_PROV_ARTICULOS_AUX; +DROP VIEW V_PED_PROV_ARTICULOS_RECIBIDOS; +DROP VIEW V_PED_PROV_DETALLES; +DROP VIEW V_ALB_PROV_DETALLES; + + +/* +VISTAS GENERALES +*/ +DROP VIEW V_AGENTES_COMISIONES_DET_FAC; +DROP VIEW V_FACTURAS_CLIENTE; +DROP VIEW V_FACTURAS_PROVEEDOR; +DROP VIEW V_FAC_CLI_SITUACION; +DROP VIEW V_FAC_PRO_SITUACION; +DROP VIEW V_REC_FAC_CLI_COBRADOS; +DROP VIEW V_REC_FAC_PRO_PAGADOS; +DROP VIEW V_RECIBOS_CLIENTE; +DROP VIEW V_RECIBOS_PROVEEDOR; +DROP VIEW V_REC_CLI_SITUACION; +DROP VIEW V_REC_PRO_SITUACION; +DROP VIEW V_REC_FAC_CLI; +DROP VIEW V_REC_FAC_PRO; +DROP VIEW V_AGENTES; +DROP VIEW V_ALBARANES_PROVEEDOR; +DROP VIEW V_PROVEEDORES; +DROP VIEW V_CLIENTES; +DROP VIEW V_CONTACTOS; +DROP VIEW V_REMESAS_CLIENTE; + + +CREATE VIEW V_REMESAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + 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.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(RECIBOS_CLIENTE.IMPORTE + RECIBOS_CLIENTE.OTROS_GASTOS) 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) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16; + + +CREATE VIEW V_CONTACTOS( + 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) +AS +SELECT CONTACTOS.ID, + CONTACTOS_CATEGORIAS.ID_CATEGORIA, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + 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); + + +CREATE VIEW V_CLIENTES( + 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, + ID_AGENTE, + GRUPO_CLIENTE, + NOMBRE_COMERCIAL, + VENCIMIENTO_FACTURAS, + BLOQUEADO, + REGIMEN_IVA, + MOTIVO_BLOQUEO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB) +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, + CLIENTES_DATOS.ID_AGENTE, + CLIENTES_DATOS.GRUPO_CLIENTE, + CLIENTES_DATOS.NOMBRE_COMERCIAL, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS, + CLIENTES_DATOS.BLOQUEADO, + 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 +FROM + V_CONTACTOS + LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) +WHERE + V_CONTACTOS.ID_CATEGORIA = 1; + + +CREATE VIEW V_PROVEEDORES( + 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, + DESCUENTO, + REGIMEN_IVA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB) +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, + PROVEEDORES_DATOS.DESCUENTO, + PROVEEDORES_DATOS.REGIMEN_IVA, + PROVEEDORES_DATOS.ID_TIPO_IVA, + PROVEEDORES_DATOS.ID_FORMA_PAGO, + PROVEEDORES_DATOS.TIENDA_WEB +FROM + PROVEEDORES_DATOS + INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 2; + + +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + TIPO, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FAC_PROVEEDOR, + 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) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + V_PROVEEDORES.NOMBRE, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + CASE WHEN (ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'D' ELSE 'A' END AS TIPO, + ALBARANES_PROVEEDOR.ID_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_FAC_PROVEEDOR, + 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 +FROM + ALBARANES_PROVEEDOR + LEFT OUTER JOIN V_PROVEEDORES ON (ALBARANES_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) + 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); + + +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) +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 FROM + V_CONTACTOS + WHERE V_CONTACTOS.ID_CATEGORIA = 3; + + +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; + +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; + + +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; + + +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; + + +CREATE VIEW V_RECIBOS_PROVEEDOR( + ID, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + NIF_CIF_PROVEEDOR, + ENTIDAD_PROVEEDOR, + SUCURSAL_PROVEEDOR, + DC_PROVEEDOR, + CUENTA_PROVEEDOR, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_PROVEEDOR.ID, RECIBOS_PROVEEDOR.REFERENCIA, RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + V_REC_PRO_SITUACION.SITUACION, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + RECIBOS_PROVEEDOR.IMPORTE + RECIBOS_PROVEEDOR.OTROS_GASTOS, + + FACTURAS_PROVEEDOR.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, + + CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS_DATOS_BANCO.ENTIDAD, + CONTACTOS_DATOS_BANCO.SUCURSAL, CONTACTOS_DATOS_BANCO.DC, CONTACTOS_DATOS_BANCO.CUENTA, + + RECIBOS_PROVEEDOR.FECHA_ALTA, + RECIBOS_PROVEEDOR.FECHA_MODIFICACION, + RECIBOS_PROVEEDOR.USUARIO + +FROM V_REC_PRO_SITUACION +LEFT JOIN RECIBOS_PROVEEDOR +ON (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +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 CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID); + + +CREATE VIEW V_RECIBOS_CLIENTE( + ID, + 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, + ID_CLIENTE, + NOMBRE_CLIENTE, + NIF_CIF_CLIENTE, + ENTIDAD_CLIENTE, + SUCURSAL_CLIENTE, + DC_CLIENTE, + CUENTA_CLIENTE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_CLIENTE.ID, RECIBOS_CLIENTE.REFERENCIA, + V_REC_CLI_SITUACION.SITUACION, + 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, + RECIBOS_CLIENTE.IMPORTE + RECIBOS_CLIENTE.OTROS_GASTOS, + + FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.ID_EMPRESA, + + CONTACTOS.ID as ID_CLIENTE, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS_DATOS_BANCO.ENTIDAD, + CONTACTOS_DATOS_BANCO.SUCURSAL, CONTACTOS_DATOS_BANCO.DC, CONTACTOS_DATOS_BANCO.CUENTA, + + RECIBOS_CLIENTE.FECHA_ALTA, + RECIBOS_CLIENTE.FECHA_MODIFICACION, + RECIBOS_CLIENTE.USUARIO + +FROM V_REC_CLI_SITUACION +LEFT JOIN RECIBOS_CLIENTE +ON (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +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 CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_CLIENTE +ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA); + + +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT V_RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_RECIBOS_PROVEEDOR.ID) +FROM V_RECIBOS_PROVEEDOR +WHERE (V_RECIBOS_PROVEEDOR.SITUACION = 'PAGADO') +GROUP BY V_RECIBOS_PROVEEDOR.ID_FACTURA; + + +CREATE VIEW V_REC_FAC_CLI_COBRADOS( + ID_FACTURA, + NUM_REC_COBRADOS) +AS +SELECT V_RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_RECIBOS_CLIENTE.ID) +FROM V_RECIBOS_CLIENTE +WHERE (V_RECIBOS_CLIENTE.SITUACION = 'COBRADO') +GROUP BY V_RECIBOS_CLIENTE.ID_FACTURA; + + +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT V_REC_FAC_PRO.ID_FACTURA, +CASE + WHEN ((V_REC_FAC_PRO.NUM_RECIBOS = 0) + OR (COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS,0) = 0)) THEN 'PENDIENTE' + WHEN (V_REC_FAC_PRO.NUM_RECIBOS = COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS, 0)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END +FROM V_REC_FAC_PRO +LEFT JOIN V_REC_FAC_PRO_PAGADOS +ON (V_REC_FAC_PRO_PAGADOS.ID_FACTURA = V_REC_FAC_PRO.ID_FACTURA); + + +CREATE VIEW V_FAC_CLI_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT V_REC_FAC_CLI.ID_FACTURA, +CASE + WHEN ((V_REC_FAC_CLI.NUM_RECIBOS = 0) + OR (COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS,0) = 0)) THEN 'PENDIENTE' + WHEN (V_REC_FAC_CLI.NUM_RECIBOS = COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS, 0)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END +FROM V_REC_FAC_CLI +LEFT JOIN V_REC_FAC_CLI_COBRADOS +ON (V_REC_FAC_CLI_COBRADOS.ID_FACTURA = V_REC_FAC_CLI.ID_FACTURA); + + +CREATE VIEW V_FACTURAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + REFERENCIA_PROVEEDOR, + FECHA_FACTURA, + 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) +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, + 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 + 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); + + +CREATE VIEW V_FACTURAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + ID_COMISION_LIQUIDADA, + FECHA_FACTURA, + SITUACION, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_CLIENTE, + 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, + ID_AGENTE, + REFERENCIA_COMISION) +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, + 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.CALLE, + FACTURAS_CLIENTE.POBLACION, + FACTURAS_CLIENTE.PROVINCIA, + FACTURAS_CLIENTE.CODIGO_POSTAL, + 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 + 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); + + +CREATE VIEW V_AGENTES_COMISIONES_DET_FAC( + ID_FACTURA, + ID_EMPRESA, + FECHA, + REFERENCIA, + SITUACION, + ID_COMISION_LIQUIDADA, + ID_CLIENTE, + ID_AGENTE, + ID_ARTICULO, + ID_PROVEEDOR, + IMPORTE_TOTAL, + COMISION, + IMPORTE_COMISION) +AS +SELECT V_FACTURAS_CLIENTE.ID, + V_FACTURAS_CLIENTE.ID_EMPRESA, + V_FACTURAS_CLIENTE.FECHA_FACTURA, + V_FACTURAS_CLIENTE.REFERENCIA, + V_FACTURAS_CLIENTE.SITUACION, + V_FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, + V_FACTURAS_CLIENTE.ID_CLIENTE, + V_FACTURAS_CLIENTE.ID_AGENTE, + + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, ARTICULOS.ID_PROVEEDOR, + FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL, COALESCE(AGENTES_COMISIONES.COMISION, 0) as COMISION, + + (CASE COALESCE(AGENTES_COMISIONES.COMISION, 0) WHEN 0 THEN 0 + ELSE ((FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL * AGENTES_COMISIONES.COMISION)/100) END) as IMPORTE_COMISION + +FROM V_FACTURAS_CLIENTE +LEFT JOIN FACTURAS_CLIENTE_DETALLES ON (FACTURAS_CLIENTE_DETALLES.ID_FACTURA = V_FACTURAS_CLIENTE.ID) +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO) +LEFT JOIN AGENTES_COMISIONES ON ((AGENTES_COMISIONES.ID_AGENTE = V_FACTURAS_CLIENTE.ID_AGENTE) +AND (AGENTES_COMISIONES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDOR)) + +WHERE (FACTURAS_CLIENTE_DETALLES.TIPO_DETALLE = 'Concepto'); + + +/* Situación de los albaranes de cliente */ +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; + +CREATE VIEW V_ALBARANES_CLIENTE( + ID, + ID_EMPRESA, + ID_CLIENTE, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + TIPO, + SITUACION, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PEDIDO, + ID_FACTURA, + REF_FACTURA, + 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, + V_CLIENTES.NOMBRE, + ALBARANES_CLIENTE.FECHA_ALBARAN, + ALBARANES_CLIENTE.REFERENCIA, + CASE WHEN (ALBARANES_CLIENTE.IMPORTE_TOTAL < 0) THEN 'D' ELSE 'A' END AS TIPO, + 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.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 V_CLIENTES ON (ALBARANES_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) + 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); + + +/*Agrupa los artículos de un mismo albarán (ya que en un albarán puede existir varias lineas con el mismo artículo). + Para cada artículo de albarán le ponemos el pedido con el que esta asociado, la situacion y el almacén de donde salió. + Se quitan todos los artículos que no tengamos en catálogo (ID_ARTICULO nulo, lineas de detalle libres) -> esta premisa la cambiamos para que + no se falsee la situación de los pedidos, asi pues todo articulo que no este en el catálogo lo pondremos con ID_ARTICULO 0. + Se quitan también aquellos que no seán inventariables -> esta premisa falsearía la situación de los pedidos*/ + +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.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 +LEFT JOIN ALBARANES_CLIENTE +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) +LEFT JOIN ARTICULOS +ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID) +LEFT 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 catálogo con el fin de no falsear la situación de los pedidos +WHERE (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +group BY ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + ALBARANES_CLIENTE_DETALLES.ID_ARTICULO; + + +/*Agrupa los artículos de un mismo pedido (ya que en un pedido puede existir varias lineas con el mismo artículo). + Se quitan todos los artículos que no tengamos en catálogo (ID_ARTICULO nulo, lineas de detalle libres) -> esta premisa la cambiamos para que + no se falsee la situación de los pedidos, asi pues todo articulo que no este en el catálogo lo pondremos con ID_ARTICULO 0. + Se quitan también aquellos que no seán inventariables -> esta premisa nos falsearía la situacion de los pedidos*/ + +CREATE VIEW V_PED_CLI_DETALLES( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO, + COALESCE(PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO, 0), + SUM(COALESCE(PEDIDOS_CLIENTE_DETALLES.CANTIDAD, 0)) AS CANTIDAD + +FROM PEDIDOS_CLIENTE_DETALLES +LEFT JOIN ARTICULOS +ON (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catálogo con el fin de no falsear la situación de los pedidos +WHERE (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO, + PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO; + + +/*Agrupa todos los artículos de un pedido por situacion (a partir de albaranes de cliente) de cada uno de los pedidos asociados en los albaranes existentes*/ +/*No le ponemos el almacen donde salió o va a salir ya que un mismo pedido podría tener varios albaranes con distintos almacenes de origen*/ +/*Aquellos articulos que no tengan ID_PEDIDO es porque el albarán al que pertenecen no tiene pedido asociado por ello no los tendremos en cuenta*/ + +CREATE VIEW V_PED_CLI_ART_SITUACION( + ID_PEDIDO, + SITUACION, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_PEDIDO, SITUACION, ID_ARTICULO, SUM(CANTIDAD) AS CANTIDAD +FROM V_ALB_CLI_DETALLES +WHERE (ID_PEDIDO is not null) +GROUP BY ID_PEDIDO, + SITUACION, + ID_ARTICULO; + + +/*Nos desglosa las cantidades del artículo*/ + +CREATE VIEW V_PED_CLI_ART_SITUACION_CANT( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_RESERVADA, + CANTIDAD_ENVIADA, + CANTIDAD_SERVIDA) +AS +SELECT ID_PEDIDO, ID_ARTICULO, +COALESCE((CASE SITUACION when 'PENDIENTE' THEN CANTIDAD END), 0) as CANTIDAD_RESERVADA, +COALESCE((CASE SITUACION when 'ENVIADO' THEN CANTIDAD END), 0) as CANTIDAD_ENVIADA, +COALESCE((CASE SITUACION when 'SERVIDO' THEN CANTIDAD END), 0) as CANTIDAD_SERVIDA +FROM V_PED_CLI_ART_SITUACION; + + +/*Al igual que en la parte de proveedores, no hacemos LEFT JOIN entre V_PED_CLI_DETALLES y V_PED_CLI_ART_SITUACION_CANT,*/ +/*porque por cada tupla de la primera repetiría la consulta de la segunda disparando tiempos, por ello teniendo las*/ +/*dos vistas ejecutadas hacemos una union obteniendo todos los artículos del pedido, tanto recibidos como pendientes,*/ +/*luego haremos la agrupación sobre este resultado*/ + +CREATE VIEW V_PED_CLI_ARTICULOS_AUX( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RESERVADA, + CANTIDAD_ENVIADA, + CANTIDAD_SERVIDA) +AS +SELECT + V_PED_CLI_DETALLES.ID_PEDIDO, + V_PED_CLI_DETALLES.ID_ARTICULO, + V_PED_CLI_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA, + 0 AS CANTIDAD_RESERVADA, + 0 AS CANTIDAD_ENVIADA, + 0 AS CANTIDAD_SERVIDA +FROM V_PED_CLI_DETALLES +UNION +SELECT + V_PED_CLI_ART_SITUACION_CANT.ID_PEDIDO, + V_PED_CLI_ART_SITUACION_CANT.ID_ARTICULO, + NULL AS CANTIDAD_PEDIDA, + V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_RESERVADA AS CANTIDAD_RESERVADA, + V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_ENVIADA AS CANTIDAD_ENVIADA, + V_PED_CLI_ART_SITUACION_CANT.CANTIDAD_SERVIDA AS CANTIDAD_SERVIDA +FROM V_PED_CLI_ART_SITUACION_CANT; + + +/*A partir de la vista anterior obtenemos el estado de cada uno de los artículos del pedido de cliente*/ +/*Despreciamos aquellas tuplas cuya cantidad pedida sea null, porque son articulos añadidos en el albarán que*/ +/*no están en su pedido correspondiente por lo tanto no los tendremos en cuenta para saber si los articulos del*/ +/*pedido se han recibido todos. De todas formas no tiene mucho sentido este caso*/ +/*Esta vista nos determina el estado de cada uno de los artículos del pedido de cliente*/ + +CREATE VIEW V_PED_CLI_ARTICULOS( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RESERVADA, + CANTIDAD_ENVIADA, + CANTIDAD_SERVIDA, + CANTIDAD_PENDIENTE) +AS +SELECT ID_PEDIDO, + ID_ARTICULO, + SUM(CANTIDAD_PEDIDA), + SUM(CANTIDAD_RESERVADA) as CANTIDAD_RESERVADA, + SUM(CANTIDAD_ENVIADA) as CANTIDAD_ENVIADA, + SUM(CANTIDAD_SERVIDA) as CANTIDAD_SERVIDA, + (SUM(CANTIDAD_PEDIDA) - (SUM(CANTIDAD_RESERVADA) + + SUM(CANTIDAD_ENVIADA) + + SUM(CANTIDAD_SERVIDA))) as CANTIDAD_PENDIENTE +FROM V_PED_CLI_ARTICULOS_AUX +GROUP BY ID_PEDIDO, + ID_ARTICULO +HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL; + + +/*POR COMENTAR*/ + +CREATE VIEW V_PED_CLI_SITUACION ( + ID_PEDIDO, + SITUACION) +AS +/*ANTERIOR +SELECT ID_PEDIDO, + CASE + WHEN HAY_ALBARANES = 0 THEN 'PENDIENTE' + WHEN (CANTIDAD_PENDIENTE <= 0) AND (CANTIDAD_PEDIDA <= CANTIDAD_SERVIDA) THEN 'SERVIDO' + ELSE 'EN PROCESO' + END AS SITUACION +FROM +(SELECT V_PED_CLI_ARTICULOS.ID_PEDIDO, + SUM(V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA) AS CANTIDAD_PEDIDA, + SUM(V_PED_CLI_ARTICULOS.CANTIDAD_RESERVADA) AS CANTIDAD_RESERVADA, + SUM(V_PED_CLI_ARTICULOS.CANTIDAD_ENVIADA) AS CANTIDAD_ENVIADA, + SUM(V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA) AS CANTIDAD_SERVIDA, + SUM(V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE) AS CANTIDAD_PENDIENTE, + CASE + WHEN COUNT(ALBARANES_CLIENTE.ID) > 0 THEN 1 + ELSE 0 + END AS HAY_ALBARANES +FROM ALBARANES_CLIENTE + RIGHT OUTER JOIN V_PED_CLI_ARTICULOS ON (ALBARANES_CLIENTE.ID_PEDIDO = + V_PED_CLI_ARTICULOS.ID_PEDIDO) +GROUP BY V_PED_CLI_ARTICULOS.ID_PEDIDO); +*/ + +SELECT + PEDIDOS_CLIENTE.ID, + /* Si (num. artículos servidos - num. artículos pedidos) = 0 -> Ped. servido + Si no + Si el pedido tiene albaranes -> Ped. servido + Si no -> Ped. pendiente + */ + CASE + WHEN + ( COALESCE( + (SELECT + COUNT(V_PED_CLI_ARTICULOS.ID_ARTICULO) + FROM + V_PED_CLI_ARTICULOS + WHERE (V_PED_CLI_ARTICULOS.CANTIDAD_PEDIDA <= V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA) + AND (V_PED_CLI_ARTICULOS.ID_PEDIDO = PEDIDOS_CLIENTE.ID) + GROUP BY ID_PEDIDO), 0) + - + COALESCE( + (SELECT + COUNT(V_PED_CLI_DETALLES.ID_ARTICULO) + FROM + V_PED_CLI_DETALLES + WHERE (V_PED_CLI_DETALLES.ID_PEDIDO = PEDIDOS_CLIENTE.ID) + GROUP BY ID_PEDIDO), 0) + = 0) + AND + ( COALESCE( + (SELECT + COUNT(V_PED_CLI_DETALLES.ID_ARTICULO) + FROM + V_PED_CLI_DETALLES + WHERE (V_PED_CLI_DETALLES.ID_PEDIDO = PEDIDOS_CLIENTE.ID) + GROUP BY ID_PEDIDO), 0) + <> 0) THEN 'SERVIDO' + ELSE + CASE + WHEN + (COALESCE( + (SELECT + COUNT(ALBARANES_CLIENTE.ID) + FROM + ALBARANES_CLIENTE + WHERE (ALBARANES_CLIENTE.ID_PEDIDO = PEDIDOS_CLIENTE.ID) + GROUP BY ALBARANES_CLIENTE.ID_PEDIDO), 0) + <> 0) THEN 'EN PROCESO' + + ELSE 'PENDIENTE' + END + END AS SITUACION +FROM + PEDIDOS_CLIENTE; + + +/*Agrupa los artículos de un mismo albarán (ya que en un albarán puede existir varias lineas con el mismo artículo). + Para cada artículo de albarán le ponemos el pedido con el que esta asociado y el almacén donde se recibio. + Se quitan todos los artículos que no tengamos en catálogo (ID_ARTICULO nulo, lineas de detalle libres)-> esta premisa la cambiamos para que + no se falsee la situación de los pedidos, asi pues todo articulo que no este en el catálogo lo pondremos con ID_ARTICULO 0. + Se quitan también aquellos que no seán inventariables -> esta premisa nos falsearía la situación de los pedidos */ + +CREATE VIEW V_ALB_PROV_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + SUM (COALESCE(ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, 0)) AS CANTIDAD + +FROM ALBARANES_PROVEEDOR_DETALLES +LEFT JOIN ALBARANES_PROVEEDOR +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catálogo con el fin de no falsear la situación de los pedidos +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; + + +/*Agrupa los artículos de un mismo pedido (ya que en un pedido puede existir varias lineas con el mismo artículo). + Para cada artículo de pedido le ponemos el pedido con el que esta asociado y el almacén donde será recibido. + Se quitan todos los artículos que no tengamos en catálogo (ID_ARTICULO nulo, lineas de detalle libres)-> esta premisa la cambiamos para que + no se falsee la situación de los pedidos, asi pues todo articulo que no este en el catálogo lo pondremos con ID_ARTICULO 0. + Se quitan también aquellos que no seán inventariables -> esta premisa nos falsearia la situacion de los pedidos*/ + +CREATE VIEW V_PED_PROV_DETALLES( + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + SUM(COALESCE(PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, 0)) + +FROM PEDIDOS_PROVEEDOR_DETALLES +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catálogo con el fin de no falsear la situación de los pedidos +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; + + +/*Agrupa todos los artículos recibidos (por albaranes de proveedor) de cada uno de los pedidos asociados en los albaranes existentes*/ +/*No le ponemos el almacen donde se recibió ya que un mismo pedido podría tener varios albaranes con distintos almacenes de destino*/ +/*Aquellos articulos que no tengan ID_PEDIDO es porque el albarán al que pertenecen no tiene pedido asociado por ello no los tendremos en cuenta*/ + +CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_PEDIDO, ID_ARTICULO, SUM(CANTIDAD) AS CANTIDAD +FROM V_ALB_PROV_DETALLES +WHERE (ID_PEDIDO is not null) +GROUP BY ID_PEDIDO, ID_ARTICULO; + + +/*No hacemos LEFT JOIN entre V_PED_PROV_DETALLES y V_PED_PROV_ARTICULOS_RECIBIDOS, porque por cada tupla de la primera*/ +/*repetiría la consulta de la segunda disparando tiempos, por ello teniendo las dos vistas ejecutadas hacemos una union*/ +/*obteniendo todos los artículos del pedido, tanto recibidos como pendientes, luego haremos la agrupación sobre este resultado*/ + +CREATE VIEW V_PED_PROV_ARTICULOS_AUX( + ID_PEDIDO, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA) +AS +SELECT + V_PED_PROV_DETALLES.ID_PEDIDO, + V_PED_PROV_DETALLES.ID_ARTICULO, + V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA, + 0 as CANTIDAD_RECIBIDA +FROM V_PED_PROV_DETALLES +UNION +SELECT + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO, + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO, + NULL as CANTIDAD_PEDIDA, + V_PED_PROV_ARTICULOS_RECIBIDOS.CANTIDAD AS CANTIDAD_RECIBIDA +FROM V_PED_PROV_ARTICULOS_RECIBIDOS; + + +/*A partir de la vista anterior obtenemos el estado de cada uno de los artículos del pedido de proveedor*/ +/*Despreciamos aquellas tuplas cuya cantidad pedida sea null, porque son articulos añadidos en el albarán que*/ +/*no están en su pedido correspondiente por lo tanto no los tendremos en cuenta para saber si los articulos del*/ +/*pedido se han recibido todos. De todas formas no tiene mucho sentido este caso*/ + +CREATE VIEW V_PED_PROV_ARTICULOS( + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA, + CANTIDAD_PENDIENTE) +AS +SELECT ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + ID_ARTICULO, + 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 +HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL; + + +/*POR COMENTAR*/ + +CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS2( + ID_PEDIDO, + CANTIDAD) +AS +select ID_PEDIDO, count(CANTIDAD_PENDIENTE) +from V_PED_PROV_ARTICULOS +where (CANTIDAD_PENDIENTE <= 0) +group by ID_PEDIDO; + +CREATE VIEW V_PED_PROV_NUM_ARTICULOS( + ID_PEDIDO, + CANTIDAD) +AS +select ID_PEDIDO, count(ID_ARTICULO) +from V_PED_PROV_DETALLES +group by ID_PEDIDO; + +CREATE VIEW V_PED_PROV_RECIBIDOS( + ID_PEDIDO) +AS +SELECT V_PED_PROV_ARTICULOS_RECIBIDOS2.ID_PEDIDO +from V_PED_PROV_ARTICULOS_RECIBIDOS2 +LEFT JOIN V_PED_PROV_NUM_ARTICULOS +on (V_PED_PROV_NUM_ARTICULOS.ID_PEDIDO = V_PED_PROV_ARTICULOS_RECIBIDOS2.ID_PEDIDO) +where V_PED_PROV_ARTICULOS_RECIBIDOS2.CANTIDAD = V_PED_PROV_NUM_ARTICULOS.CANTIDAD; + +CREATE VIEW V_PED_PROV_PARCIALMENTE( + ID_PEDIDO) +AS +Select ID_PEDIDO +from v_ped_prov_articulos_recibidos +where id_pedido not in (select ID_PEDIDO from V_PED_PROV_RECIBIDOS); + +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +/*ANTERIOR A LA VISTA ACTUAL +SELECT ID_PEDIDO, + CASE + WHEN (HAY_ALBARANES = 0) OR (CANTIDAD_RECIBIDA <= 0) THEN 'PENDIENTE' + WHEN (CANTIDAD_PENDIENTE <= 0) THEN 'RECIBIDO' + ELSE 'PARCIAL' + END AS SITUACION +FROM +(SELECT V_PED_PROV_ARTICULOS.ID_PEDIDO, + SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PEDIDA) AS CANTIDAD_PEDIDA, + SUM(V_PED_PROV_ARTICULOS.CANTIDAD_RECIBIDA) AS CANTIDAD_RECIBIDA, + SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE) AS CANTIDAD_PENDIENTE, + CASE + WHEN COUNT(ALBARANES_PROVEEDOR.ID) > 0 THEN 1 + ELSE 0 + END AS HAY_ALBARANES +FROM ALBARANES_PROVEEDOR + RIGHT OUTER JOIN V_PED_PROV_ARTICULOS ON (ALBARANES_PROVEEDOR.ID_PEDIDO = + V_PED_PROV_ARTICULOS.ID_PEDIDO) +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO); +*/ + +select ID, 'PENDIENTE' +from PEDIDOS_PROVEEDOR +where (ID not in (select ID_PEDIDO from v_ped_prov_parcialmente)) +and (ID not in (select ID_PEDIDO from v_ped_prov_recibidos)) + +union + +select ID_PEDIDO, 'PARCIAL' +from v_ped_prov_parcialmente + +union + +select ID_PEDIDO, 'RECIBIDO' +from v_ped_prov_recibidos; + + +CREATE VIEW V_PEDIDOS_CLIENTE( + ID, + ID_EMPRESA, + ID_CLIENTE, + NOMBRE, + REFERENCIA, + SITUACION, + FECHA_PEDIDO, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + 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, + REF_TIENDA_WEB, + FECHA_PREVISTA_ENVIO) +AS +SELECT + PEDIDOS_CLIENTE.ID, + PEDIDOS_CLIENTE.ID_EMPRESA, + PEDIDOS_CLIENTE.ID_CLIENTE, + V_CLIENTES.NOMBRE, + PEDIDOS_CLIENTE.REFERENCIA, + V_PED_CLI_SITUACION.SITUACION, + PEDIDOS_CLIENTE.FECHA_PEDIDO, + PEDIDOS_CLIENTE.CALLE, + PEDIDOS_CLIENTE.CODIGO_POSTAL, + PEDIDOS_CLIENTE.POBLACION, + PEDIDOS_CLIENTE.PROVINCIA, + PEDIDOS_CLIENTE.PERSONA_CONTACTO, + PEDIDOS_CLIENTE.TELEFONO, + PEDIDOS_CLIENTE.OBSERVACIONES, + PEDIDOS_CLIENTE.INCIDENCIAS, + PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PEDIDOS_CLIENTE.FECHA_ALTA, + PEDIDOS_CLIENTE.FECHA_MODIFICACION, + PEDIDOS_CLIENTE.USUARIO, + PEDIDOS_CLIENTE.IMPORTE_NETO, + PEDIDOS_CLIENTE.IMPORTE_PORTE, + PEDIDOS_CLIENTE.DESCUENTO, + PEDIDOS_CLIENTE.IMPORTE_DESCUENTO, + PEDIDOS_CLIENTE.BASE_IMPONIBLE, + PEDIDOS_CLIENTE.IVA, + PEDIDOS_CLIENTE.IMPORTE_IVA, + PEDIDOS_CLIENTE.IMPORTE_TOTAL, + PEDIDOS_CLIENTE.ID_FORMA_PAGO, + PEDIDOS_CLIENTE.REF_TIENDA_WEB, + PEDIDOS_CLIENTE.FECHA_PREVISTA_ENVIO +FROM + PEDIDOS_CLIENTE + LEFT OUTER JOIN V_CLIENTES ON (PEDIDOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) + LEFT OUTER JOIN V_PED_CLI_SITUACION ON (V_PED_CLI_SITUACION.ID_PEDIDO = PEDIDOS_CLIENTE.ID); + + +CREATE VIEW V_PEDIDOS_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + REFERENCIA, + SITUACION, + FECHA_ENVIO, + FECHA_PEDIDO, + FECHA_CONFIRMACION, + FECHA_ENTREGA, + ID_ALMACEN, + NOMBRE_ALMACEN, + 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) +AS +SELECT + PEDIDOS_PROVEEDOR.ID, + PEDIDOS_PROVEEDOR.ID_EMPRESA, + PEDIDOS_PROVEEDOR.ID_PROVEEDOR, + V_PROVEEDORES.NOMBRE, + PEDIDOS_PROVEEDOR.REFERENCIA, + 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.NOMBRE AS NOMBRE_ALMACEN, + 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 +FROM + PEDIDOS_PROVEEDOR + LEFT OUTER JOIN V_PROVEEDORES ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE) + LEFT OUTER JOIN V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID); + + + + + + + + + + + + + + + + + + + + +CREATE VIEW V_PED_CLI_ART_PEND_PEDIR_PROV( + ID_PEDIDO, + ID_ARTICULO, + CANT_PEDIDA_CLIENTE, + ID_PROVEEDOR, + CANT_PEDIDA_PROVEEDOR, + CANT_PENDIENTE_PEDIR) +AS +SELECT + V_PED_CLI_ARTICULOS.ID_PEDIDO, + V_PED_CLI_ARTICULOS.ID_ARTICULO, + V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE AS CANT_PED_CLI, + ARTICULOS.ID_PROVEEDOR, + SUM(COALESCE(V_PED_PROV_ARTICULOS.CANTIDAD_PEDIDA, 0)) AS CANT_PED_PROV, + V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE - SUM(COALESCE(V_PED_PROV_ARTICULOS.CANTIDAD_PEDIDA, 0)) AS CANT_PEND_PEDIR +FROM + V_PED_CLI_ARTICULOS + LEFT OUTER JOIN ARTICULOS ON (ARTICULOS.ID = V_PED_CLI_ARTICULOS.ID_ARTICULO) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE = V_PED_CLI_ARTICULOS.ID_PEDIDO) + LEFT OUTER JOIN V_PED_PROV_ARTICULOS ON + ((V_PED_PROV_ARTICULOS.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) AND + (V_PED_PROV_ARTICULOS.ID_ARTICULO = V_PED_CLI_ARTICULOS.ID_ARTICULO)) + +WHERE (V_PED_CLI_ARTICULOS.ID_ARTICULO <> 0) +AND (ARTICULOS.INVENTARIABLE = 1) + +GROUP BY + V_PED_CLI_ARTICULOS.ID_PEDIDO, + V_PED_CLI_ARTICULOS.ID_ARTICULO, + V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE, + ARTICULOS.ID_PROVEEDOR +HAVING + V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE - SUM(COALESCE(V_PED_PROV_ARTICULOS.CANTIDAD_PEDIDA, 0)) > 0; + + + +/* +INVENTARIO +*/ + +/*Todos los articulos reservados en almacén para algún albarán (Pendiente))*/ + +CREATE VIEW V_INV_RESERVAS( + 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; + +/*Todas las salidas de articulos a partir de los movimientos libres realizados por el usuario*/ + +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; + + +/*Todas las salidas de articulos a partir de los albaranes de cliente*/ +/*No tendremos en cuenta los albaranes que no tengan un almacén origen, es decir que no se contabilizarán*/ +/*aquellos albaranes que se manden directamente al cliente sin pasar por almacén*/ +/*Serán salidas en el momento que el albarán este enviado o servido, si esta pendiente estará reservado*/ + +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; + + +/*Al igual que en las vistas de articulos de pedido de proveedor y cliente, es mucho más rápido y mejor para este*/ +/*caso una unión y luego una agrupación que un FULL OUTER JOIN*/ + +CREATE VIEW V_INV_SALIDAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_ALB +UNION +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_MOV; + +/*Todos los articulos pedidos a proveedor y que todavía no he recibido, y que tienen un almacén destino*/ + +CREATE VIEW V_INV_ENTRADAS_PENDIENTES( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD_PENDIENTE) +FROM V_PED_PROV_ARTICULOS +WHERE (ID_ALMACEN IS NOT NULL) +GROUP BY ID_ALMACEN, ID_ARTICULO; + +/*Todas las salidas de almacen, bien por albarán o por movimiento libre, a partir de la vista auxiliar anterior*/ + +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; + + + +/*Todas las entradas de articulos a partir de los albaranes de proveedor*/ +/*No tendremos en cuenta los albaranes que no tengan un almacén destino, es decir que no se contabilizarán*/ +/*aquellos albaranes que se manden directamente al cliente*/ + +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; + + + +/*Todas las entradas de articulos a partir de los movimientos libres realizados por el usuario*/ + +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; + + + +/*Al igual que en las vistas de articulos de pedido de proveedor y cliente, es mucho más rápido y mejor para este*/ +/*caso una unión y luego una agrupación que un FULL OUTER JOIN*/ + +CREATE VIEW V_INV_ENTRADAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_ALB +UNION +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_MOV; + + +/*Todas las entradas en almacen, bien por albarán o por movimiento libre, a partir de la vista auxiliar anterior*/ + +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; + +/*Al igual que en las vistas de articulos de pedido de proveedor y cliente, es mucho más rápido y mejor para este*/ +/*caso una unión y luego una agrupación que un FULL OUTER JOIN*/ + +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 +SELECT ID_ALMACEN, + ID_ARTICULO, + 0 as CANTIDAD_ENTRADA, + CANTIDAD as CANTIDAD_SALIDA +FROM V_INV_SALIDAS; + +/* Stock actual por articulo y almacén, calculado a partir de la vista auxiliar anterior*/ + +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; + + +/*Tomamos la misma filosofia que en los casos anteriores ya que los tiempos se reducen, que es una barbaridad*/ + +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 +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS +FROM V_INV_ENTRADAS_PENDIENTES +UNION +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS +FROM V_INV_RESERVAS; + +/*Vista de inventario final OPTIMIZADISIMAAAA*/ +CREATE VIEW V_INVENTARIO( + ID_ALMACEN, + ID_EMPRESA, + NOMBRE, + ID_ARTICULO, + REFERENCIA, + FAMILIA, + DESCRIPCION, + REFERENCIA_PROV, + PRECIO_NETO, + STOCK, + UNIDADES_ALMACEN, + COSTE_UNIDADES, + RESERVA, + PENDIENTE_RECEPCION) +AS +SELECT ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_PROV, + 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.INVENTARIABLE = 1) + +GROUP BY ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.PRECIO_NETO; + + + + +/************************************************************************/ +/* INFORMES *************************************************************/ +/************************************************************************/ +/*Al igual que en Varela tendremos esta vista para hacer todos los informes que queramos de ventas, ya que estará desglosado por artículo*/ + +CREATE VIEW V_VENTAS_ARTICULOS( + + ID_FACTURA, + ID_REFERENCIA_FACTURA, + FECHA_FACTURA, + IMPORTE_TOTAL_FACTURA, + ID_COMISION_FACTURA, + + ID_ARTICULO, + FAMILIA, + REFERENCIA, + REFERENCIA_PROV, + DESCRIPCION, + COMISIONABLE, + INVENTARIABLE, + + PRECIO_COSTE, + DESCUENTO_PROVEEDOR, + PRECIO_NETO, + PRECIO_PORTE, + + CANTIDAD, + IMPORTE_UNIDAD, + DESCUENTO_CLIENTE, + IMPORTE_PORTE, + IMPORTE_TOTAL, + + NIF_CIF_PROVEEDOR, + NOMBRE_PROVEEDOR, + CALLE_PROVEEDOR, + POBLACION_PROVEEDOR, + PROVINCIA_PROVEEDOR, + + NIF_CIF_CLIENTE, + NOMBRE_CLIENTE, + NOMBRE_COMERCIAL_CLIENTE, + CALLE_CLIENTE, + POBLACION_CLIENTE, + PROVINCIA_CLIENTE, + + NIF_CIF_AGENTE, + NOMBRE_AGENTE, + CALLE_AGENTE, + POBLACION_AGENTE, + PROVINCIA_AGENTE, + COMISION_AGENTE, + IMPORTE_COMISION_AGENTE + +)AS + +select +FACTURAS_CLIENTE.ID, +FACTURAS_CLIENTE.REFERENCIA, +FACTURAS_CLIENTE.FECHA_FACTURA, +FACTURAS_CLIENTE.IMPORTE_TOTAL, +FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, + +FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + +ARTICULOS.FAMILIA, +ARTICULOS.REFERENCIA, +ARTICULOS.REFERENCIA_PROV, +ARTICULOS.DESCRIPCION, +ARTICULOS.COMISIONABLE, +ARTICULOS.INVENTARIABLE, + +ARTICULOS.PRECIO_COSTE, +ARTICULOS.DESCUENTO, +ARTICULOS.PRECIO_NETO, +ARTICULOS.PRECIO_PORTE, + +FACTURAS_CLIENTE_DETALLES.CANTIDAD, +FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD, +FACTURAS_CLIENTE_DETALLES.DESCUENTO, +FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE, +FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL, + +V_PROVEEDORES.NIF_CIF, +V_PROVEEDORES.NOMBRE, +V_PROVEEDORES.CALLE, +V_PROVEEDORES.POBLACION, +V_PROVEEDORES.PROVINCIA, + +V_CLIENTES.NIF_CIF, +V_CLIENTES.NOMBRE, +V_CLIENTES.NOMBRE_COMERCIAL, +V_CLIENTES.CALLE, +V_CLIENTES.POBLACION, +V_CLIENTES.PROVINCIA, + +V_AGENTES.NIF_CIF, +V_AGENTES.NOMBRE, +V_AGENTES.CALLE, +V_AGENTES.POBLACION, +V_AGENTES.PROVINCIA, + +COALESCE(AGENTES_COMISIONES.COMISION, 0) AS COMISION, + +(CASE COALESCE(AGENTES_COMISIONES.COMISION, 0) WHEN 0 THEN 0 + ELSE ((FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL * AGENTES_COMISIONES.COMISION)/100) END) as IMPORTE_COMISION + + +from FACTURAS_CLIENTE_DETALLES +left join ARTICULOS on (ARTICULOS.ID = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO) +left join V_PROVEEDORES on (V_PROVEEDORES.ID = ARTICULOS.ID_PROVEEDOR) +left join FACTURAS_CLIENTE on (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) +left join V_CLIENTES on (V_CLIENTES.ID = FACTURAS_CLIENTE.ID_CLIENTE) +left join V_AGENTES on (V_AGENTES.ID = V_CLIENTES.ID_AGENTE) +left join AGENTES_COMISIONES +on ((AGENTES_COMISIONES.ID_AGENTE = V_AGENTES.ID) and (AGENTES_COMISIONES.ID_PROVEEDOR = V_PROVEEDORES.ID)) + +where FACTURAS_CLIENTE_DETALLES.ID_ARTICULO is not null + + diff --git a/Database/factuges.sql b/Database/factuges.sql new file mode 100644 index 00000000..e2617120 --- /dev/null +++ b/Database/factuges.sql @@ -0,0 +1,918 @@ +CREATE DOMAIN TIPO_ID AS INTEGER; +CREATE DOMAIN TIPO_PERFIL AS VARCHAR(15); +CREATE DOMAIN TIPO_USUARIO AS VARCHAR(20); +CREATE DOMAIN TIPO_PASSWORD AS VARCHAR(10); +CREATE DOMAIN TIPO_NOTAS AS BLOB SUB_TYPE TEXT; +CREATE DOMAIN TIPO_BINARIO AS BLOB SUB_TYPE 0 SEGMENT SIZE 80; +CREATE DOMAIN TIPO_IMPORTE AS NUMERIC(11, 2); +CREATE DOMAIN TIPO_PORCENTAJE AS FLOAT; +CREATE DOMAIN TIPO_CONCEPTO AS VARCHAR(2000); +CREATE DOMAIN TIPO_BOOLEANO AS SMALLINT; + +CREATE TABLE CONFIGURACION ( + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID +); + +CREATE TABLE REFERENCIAS ( + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID +); + + +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), + IVA TIPO_PORCENTAJE +); + +ALTER TABLE EMPRESAS ADD CONSTRAINT +PK_EMPRESAS +PRIMARY KEY (ID); + +CREATE GENERATOR GEN_EMPRESAS_ID; +SET GENERATOR GEN_EMPRESAS_ID TO 1; + + +CREATE TABLE PERFILES ( + ID TIPO_ID NOT NULL, + PERFIL TIPO_PERFIL NOT NULL +); + +ALTER TABLE PERFILES +ADD CONSTRAINT PK_PERFILES PRIMARY KEY (ID); + +CREATE GENERATOR GEN_PERFILES_ID; +SET GENERATOR GEN_PERFILES_ID TO 1; + + +CREATE TABLE USUARIOS ( + ID TIPO_ID NOT NULL, + USUARIO TIPO_USUARIO NOT NULL, + PASS TIPO_PASSWORD, + ACTIVO TIPO_BOOLEANO, + LAST_LOGIN TIMESTAMP +); + +ALTER TABLE USUARIOS +ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID); + +CREATE GENERATOR GEN_USUARIOS_ID; +SET GENERATOR GEN_USUARIOS_ID TO 1; + + +CREATE TABLE PERFILES_USUARIOS ( + ID_PERFIL TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +ALTER TABLE PERFILES_USUARIOS +ADD CONSTRAINT PK_PERFILES_USUARIOS PRIMARY KEY (ID_PERFIL, ID_USUARIO); + + +CREATE TABLE CATEGORIAS ( + ID TIPO_ID NOT NULL, + CATEGORIA VARCHAR(255) NOT NULL +); + +ALTER TABLE CATEGORIAS +ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID); + +CREATE GENERATOR GEN_CATEGORIAS_ID; +SET GENERATOR GEN_CATEGORIAS_ID TO 1; + + +CREATE TABLE CONTACTOS ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + 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 +); + +ALTER TABLE CONTACTOS +ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID); + +CREATE GENERATOR GEN_CONTACTOS_ID; +SET GENERATOR GEN_CONTACTOS_ID TO 1; + +CREATE TRIGGER TRI_INSERT_CONTACTOS FOR CONTACTOS +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_CONTACTOS FOR CONTACTOS +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE TABLE CONTACTOS_CATEGORIAS ( + ID_CONTACTO TIPO_ID NOT NULL, + ID_CATEGORIA TIPO_ID NOT NULL +); + +ALTER TABLE CONTACTOS_CATEGORIAS +ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA); + +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) +); + +ALTER TABLE CONTACTOS_DATOS_BANCO +ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID); + +CREATE INDEX IDX_CONTACTOS_DATOS_BANCO +ON CONTACTOS_DATOS_BANCO (ID_CONTACTO); + +CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; +SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1; + + +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) +); + +ALTER TABLE CONTACTOS_DIRECCIONES +ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID); + +CREATE GENERATOR GEN_CONTACTOS_DIR_ID; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1; + + +CREATE TABLE CLIENTES_DATOS ( + ID_CLIENTE TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID, + BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL, + GRUPO_CLIENTE VARCHAR(255), + PORTE TIPO_IMPORTE, + NOMBRE_COMERCIAL VARCHAR(255), + VENCIMIENTO_FACTURAS INTEGER, + RECARGO_EQUIVALENCIA TIPO_PORCENTAJE, + REGIMEN_IVA TIPO_PORCENTAJE +); + +ALTER TABLE CLIENTES_DATOS +ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE); + +CREATE TABLE CLIENTES_GRUPOS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE PROVEEDORES_DATOS ( + ID_PROVEEDOR TIPO_ID NOT NULL, + DESCUENTO TIPO_PORCENTAJE, + REGIMEN_IVA TIPO_PORCENTAJE +); + +ALTER TABLE PROVEEDORES_DATOS +ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); + +CREATE TABLE EMPRESAS_CONTACTOS ( + ID_EMPRESA TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL +); + +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT +PK_EMPRESAS_CONTACTOS +PRIMARY KEY (ID_EMPRESA, ID_CONTACTO); + + +CREATE TABLE EMPRESAS_USUARIOS ( + ID_EMPRESA TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT +PK_EMPRESAS_USUARIOS +PRIMARY KEY (ID_EMPRESA, ID_USUARIO); + + +CREATE TABLE FACTURAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CONTRATO TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_FACTURA DATE, + VENCIMIENTO INTEGER, + SITUACION VARCHAR(255), + FECHA_PAGADO DATE, + 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, + FORMA_PAGO TIPO_NOTAS, + ID_CLIENTE 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 +); +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID); + +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_CONTACTOS FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +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; + +CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; +SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1; + +CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE FACTURAS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + CONCEPTO TIPO_CONCEPTO, + CANTIDAD INTEGER, + IMPORTE_UNIDAD TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); +ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID); + +CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; +SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1; + +CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + + +CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + + + +CREATE TABLE ALMACENES ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + 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 +); + +ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID); + +ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; + +CREATE GENERATOR GEN_ALMACENES_ID; +SET GENERATOR GEN_ALMACENES_ID TO 1; + +CREATE TRIGGER TRI_INSERT_ALMACENES FOR ALMACENES +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + + +CREATE TRIGGER TRI_UPDATE_ALMACENES FOR ALMACENES +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE TABLE FAMILIAS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE ARTICULOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + FAMILIA 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, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + + +ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID); +ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; + +CREATE GENERATOR GEN_ARTICULOS_ID; +SET GENERATOR GEN_ARTICULOS_ID TO 1; + + +CREATE TRIGGER TRI_INSERT_ARTICULOS FOR ARTICULOS +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_ARTICULOS FOR ARTICULOS +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE PEDIDOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + FECHA_CONFIRMACION DATE, + FECHA_ENTREGA DATE, + SITUACION VARCHAR(255), + ID_ALMACEN TIPO_ID, + DIRECCION_ENTREGA TIPO_NOTAS, + OBSERVACIONES TIPO_NOTAS, + IMPORTE_TOTAL TIPO_IMPORTE, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (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); + +CREATE TRIGGER TRI_INSERT_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + + +CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + REFERENCIA VARCHAR(255), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD INTEGER, + IMPORTE_UNIDAD TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID); + + +CREATE TRIGGER TRI_INSERT_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE PEDIDOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + FECHA_CONFIRMACION DATE, + FECHA_ENTREGA DATE, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + OBSERVACIONES TIPO_NOTAS, + IMPORTE_TOTAL TIPO_IMPORTE, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID); + + +CREATE GENERATOR GEN_PEDIDOS_PROV_ID; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1; + +CREATE TRIGGER TRI_INSERT_PEDIDOS_CLIENTE FOR PEDIDOS_CLIENTE +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_PEDIDOS_CLIENTE FOR PEDIDOS_CLIENTE +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + REFERENCIA VARCHAR(255), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD INTEGER, + IMPORTE_UNIDAD TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID); + + +CREATE GENERATOR GEN_PEDIDOS_CLI_ID; +SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1; + +CREATE TRIGGER TRI_INSERT_PEDIDOS_CLI_DET FOR PEDIDOS_CLIENTE_DETALLES +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +CREATE TRIGGER TRI_UPDATE_PEDIDOS_CLI_DET FOR PEDIDOS_CLIENTE_DETALLES +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + + +CREATE TABLE INVENTARIO ( + ID TIPO_ID NOT NULL, + ID_ARTICULO TIPO_ID, + ID_ALMACEN TIPO_ID, + ID_PEDIDO_PROVEEDOR TIPO_ID, + ID_PEDIDO_CLIENTE TIPO_ID +); + +ALTER TABLE INVENTARIO ADD CONSTRAINT PK_INVENTARIO PRIMARY KEY (ID); +ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_ALMACENES FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_ARTICULOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE INVENTARIO ADD CONSTRAINT FK_INVENTARIO_PEDIDOS_PRO FOREIGN KEY (ID_PEDIDO_PROVEEDOR) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; + +CREATE GENERATOR GEN_INVENTARIO_ID; +SET GENERATOR GEN_INVENTARIO_ID TO 1; + + +CREATE TABLE ALBARANES_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + FECHA_ALBARAN DATE, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + 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, + FORMA_PAGO TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID); +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 NO ACTION ON UPDATE NO ACTION; + +CREATE GENERATOR GEN_ALBARANES_CLI_ID; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 1; + +/* Trigger: TRI_INSERT_ALBARANES_CLIENTE */ +CREATE TRIGGER TRI_INSERT_ALBARANES_CLIENTE FOR ALBARANES_CLIENTE ACTIVE BEFORE INSERT POSITION 0 AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_ALBARANES_CLIENTE */ +CREATE TRIGGER TRI_UPDATE_ALBARANES_CLIENTE FOR ALBARANES_CLIENTE ACTIVE BEFORE UPDATE POSITION 0 AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + +CREATE TABLE ALBARANES_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD INTEGER, + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID); + +CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 1; + +/* Trigger: TRI_INSERT_ALBARANES_CLI_DET */ +CREATE TRIGGER TRI_INSERT_ALBARANES_CLI_DET FOR ALBARANES_CLIENTE_DETALLES ACTIVE BEFORE INSERT POSITION 0 AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_ALBARANES_CLI_DET */ +CREATE TRIGGER TRI_UPDATE_ALBARANES_CLI_DET FOR ALBARANES_CLIENTE_DETALLES ACTIVE BEFORE UPDATE POSITION 0 AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE TABLE ALBARANES_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + FECHA_ALBARAN DATE, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + 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, + FORMA_PAGO TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID); +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 ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; + +CREATE GENERATOR GEN_ALBARANES_PRO_ID; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 1; + +/* Trigger: TRI_INSERT_ALBARANES_PROVEEDOR */ +CREATE TRIGGER TRI_INSERT_ALBARANES_PROVEEDOR FOR ALBARANES_PROVEEDOR ACTIVE BEFORE INSERT POSITION 0 AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_ALBARANES_PROVEEDOR */ +CREATE TRIGGER TRI_UPDATE_ALBARANES_PROVEEDOR FOR ALBARANES_PROVEEDOR +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD INTEGER, + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +ALTER TABLE ALBARANES_PROVEEDOR_DETALLES ADD CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID); + +CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 1; + +/* Trigger: TRI_INSERT_ALBARANES_PRO_DET */ +CREATE TRIGGER TRI_INSERT_ALBARANES_PRO_DET FOR ALBARANES_PROVEEDOR_DETALLES ACTIVE BEFORE INSERT POSITION 0 AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_ALBARANES_PRO_DET */ +CREATE TRIGGER TRI_UPDATE_ALBARANES_PRO_DET FOR ALBARANES_PROVEEDOR_DETALLES ACTIVE BEFORE UPDATE POSITION 0 AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + + + +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 +); +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT FK_REMESAS_CLIENTE FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); + +/* Trigger: TRI_INSERT_REMESAS_CLIENTE */ +CREATE TRIGGER TRI_INSERT_REMESAS_CLIENTE FOR REMESAS_CLIENTE +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_REMESAS_CLI */ +CREATE TRIGGER TRI_UPDATE_REMESAS_CLI FOR REMESAS_CLIENTE +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE GENERATOR GEN_REMESAS_CLIENTE_ID; +SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 1; + +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 +); +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); +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; + +/* Trigger: TRI_INSERT_RECIBOS_CLIENTE */ +CREATE TRIGGER TRI_INSERT_RECIBOS_CLIENTE FOR RECIBOS_CLIENTE +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_RECIBOS_CLIENTE */ +CREATE TRIGGER TRI_UPDATE_RECIBOS_CLIENTE FOR RECIBOS_CLIENTE +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; +SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 1; + +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 +); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID); + +/* Trigger: TRI_INSERT_PAGOS_CLIENTE */ +CREATE TRIGGER TRI_INSERT_PAGOS_CLIENTE FOR PAGOS_CLIENTE +ACTIVE BEFORE INSERT POSITION 0 +AS +begin + NEW.FECHA_ALTA = current_timestamp; + NEW.FECHA_MODIFICACION = Null; +end; + +/* Trigger: TRI_UPDATE_PAGOS_CLIENTE */ +CREATE TRIGGER TRI_UPDATE_PAGOS_CLIENTE FOR PAGOS_CLIENTE +ACTIVE BEFORE UPDATE POSITION 0 +AS +begin + NEW.FECHA_MODIFICACION = current_timestamp; +end; + +CREATE GENERATOR GEN_PAGOS_CLIENTE_ID; +SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 1; + +DECLARE EXTERNAL FUNCTION MOD + INTEGER, + INTEGER +RETURNS DOUBLE PRECISION BY VALUE +ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf'; + + +CREATE TABLE MOVIMIENTOS ( + ID TIPO_ID NOT NULL, + ID_ALMACEN TIPO_ID, + ID_ARTICULO TIPO_ID, + FECHA_MOVIMIENTO DATE, + TIPO VARCHAR(1), + CANTIDAD INTEGER, + CAUSA TIPO_CONCEPTO +); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS FOREIGN KEY (ID_ARTICULO) REFERENCES ARTICULOS (ID); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID); +CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (TIPO); + + + +/****************************************************************************/ +/* INSERTAR DATOS */ + +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'AGENTE'); + +COMMIT; + + +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA) VALUES('REF_FACTURAS_CLIENTE', '2007/001', 1); +COMMIT; \ No newline at end of file diff --git a/Lib/ClassRegistry.bpl b/Lib/ClassRegistry.bpl new file mode 100644 index 00000000..ce9bebae Binary files /dev/null and b/Lib/ClassRegistry.bpl differ diff --git a/Lib/EasyListviewD10.bpl b/Lib/EasyListviewD10.bpl new file mode 100644 index 00000000..0fd98192 Binary files /dev/null and b/Lib/EasyListviewD10.bpl differ diff --git a/Lib/GUISDK_D10.bpl b/Lib/GUISDK_D10.bpl new file mode 100644 index 00000000..a710ce46 Binary files /dev/null and b/Lib/GUISDK_D10.bpl differ diff --git a/Lib/JSDialog100.bpl b/Lib/JSDialog100.bpl new file mode 100644 index 00000000..2efbf67a Binary files /dev/null and b/Lib/JSDialog100.bpl differ diff --git a/Lib/Jcl100.bpl b/Lib/Jcl100.bpl new file mode 100644 index 00000000..1c42615f Binary files /dev/null and b/Lib/Jcl100.bpl differ diff --git a/Lib/JclVcl100.bpl b/Lib/JclVcl100.bpl new file mode 100644 index 00000000..f6bfc235 Binary files /dev/null and b/Lib/JclVcl100.bpl differ diff --git a/Lib/JvCmpD10R.bpl b/Lib/JvCmpD10R.bpl new file mode 100644 index 00000000..04a5ca0e Binary files /dev/null and b/Lib/JvCmpD10R.bpl differ diff --git a/Lib/JvCoreD10R.bpl b/Lib/JvCoreD10R.bpl new file mode 100644 index 00000000..2224aa96 Binary files /dev/null and b/Lib/JvCoreD10R.bpl differ diff --git a/Lib/JvCtrlsD10R.bpl b/Lib/JvCtrlsD10R.bpl new file mode 100644 index 00000000..e5d6cb59 Binary files /dev/null and b/Lib/JvCtrlsD10R.bpl differ diff --git a/Lib/JvCustomD10R.bpl b/Lib/JvCustomD10R.bpl new file mode 100644 index 00000000..9c592e88 Binary files /dev/null and b/Lib/JvCustomD10R.bpl differ diff --git a/Lib/JvDlgsD10R.bpl b/Lib/JvDlgsD10R.bpl new file mode 100644 index 00000000..cc45af97 Binary files /dev/null and b/Lib/JvDlgsD10R.bpl differ diff --git a/Lib/JvGlobusD10R.bpl b/Lib/JvGlobusD10R.bpl new file mode 100644 index 00000000..94da020d Binary files /dev/null and b/Lib/JvGlobusD10R.bpl differ diff --git a/Lib/JvMMD10R.bpl b/Lib/JvMMD10R.bpl new file mode 100644 index 00000000..5b90521b Binary files /dev/null and b/Lib/JvMMD10R.bpl differ diff --git a/Lib/JvNetD10R.bpl b/Lib/JvNetD10R.bpl new file mode 100644 index 00000000..20d9deb1 Binary files /dev/null and b/Lib/JvNetD10R.bpl differ diff --git a/Lib/JvPageCompsD10R.bpl b/Lib/JvPageCompsD10R.bpl new file mode 100644 index 00000000..6ee98190 Binary files /dev/null and b/Lib/JvPageCompsD10R.bpl differ diff --git a/Lib/JvStdCtrlsD10R.bpl b/Lib/JvStdCtrlsD10R.bpl new file mode 100644 index 00000000..fee5ac6b Binary files /dev/null and b/Lib/JvStdCtrlsD10R.bpl differ diff --git a/Lib/JvSystemD10R.bpl b/Lib/JvSystemD10R.bpl new file mode 100644 index 00000000..5920a6e1 Binary files /dev/null and b/Lib/JvSystemD10R.bpl differ diff --git a/Lib/MPCommonLibD10.bpl b/Lib/MPCommonLibD10.bpl new file mode 100644 index 00000000..0f5a6a84 Binary files /dev/null and b/Lib/MPCommonLibD10.bpl differ diff --git a/Lib/PNG_D10.bpl b/Lib/PNG_D10.bpl new file mode 100644 index 00000000..fb57d271 Binary files /dev/null and b/Lib/PNG_D10.bpl differ diff --git a/Lib/PluginSDK_D10R.bpl b/Lib/PluginSDK_D10R.bpl new file mode 100644 index 00000000..e0dc0d13 Binary files /dev/null and b/Lib/PluginSDK_D10R.bpl differ diff --git a/Lib/PngComponentsD10.bpl b/Lib/PngComponentsD10.bpl new file mode 100644 index 00000000..f1f72ca6 Binary files /dev/null and b/Lib/PngComponentsD10.bpl differ diff --git a/Lib/bdertl100.bpl b/Lib/bdertl100.bpl new file mode 100644 index 00000000..89ee6a54 Binary files /dev/null and b/Lib/bdertl100.bpl differ diff --git a/Lib/ccpack10.bpl b/Lib/ccpack10.bpl new file mode 100644 index 00000000..fb998c32 Binary files /dev/null and b/Lib/ccpack10.bpl differ diff --git a/Lib/cfpack_d10.bpl b/Lib/cfpack_d10.bpl new file mode 100644 index 00000000..c11c9fb8 Binary files /dev/null and b/Lib/cfpack_d10.bpl differ diff --git a/Lib/cxDataD10.bpl b/Lib/cxDataD10.bpl new file mode 100644 index 00000000..c6cbf622 Binary files /dev/null and b/Lib/cxDataD10.bpl differ diff --git a/Lib/cxEditorsD10.bpl b/Lib/cxEditorsD10.bpl new file mode 100644 index 00000000..bbef4df4 Binary files /dev/null and b/Lib/cxEditorsD10.bpl differ diff --git a/Lib/cxExportD10.bpl b/Lib/cxExportD10.bpl new file mode 100644 index 00000000..e6454dcc Binary files /dev/null and b/Lib/cxExportD10.bpl differ diff --git a/Lib/cxExtEditorsD10.bpl b/Lib/cxExtEditorsD10.bpl new file mode 100644 index 00000000..4d0f33b9 Binary files /dev/null and b/Lib/cxExtEditorsD10.bpl differ diff --git a/Lib/cxGridD10.bpl b/Lib/cxGridD10.bpl new file mode 100644 index 00000000..d18a129f Binary files /dev/null and b/Lib/cxGridD10.bpl differ diff --git a/Lib/cxIntl5D10.bpl b/Lib/cxIntl5D10.bpl new file mode 100644 index 00000000..20b5b49c Binary files /dev/null and b/Lib/cxIntl5D10.bpl differ diff --git a/Lib/cxIntlPrintSys3D10.bpl b/Lib/cxIntlPrintSys3D10.bpl new file mode 100644 index 00000000..aa0727bc Binary files /dev/null and b/Lib/cxIntlPrintSys3D10.bpl differ diff --git a/Lib/cxLibraryD10.bpl b/Lib/cxLibraryD10.bpl new file mode 100644 index 00000000..5afb217d Binary files /dev/null and b/Lib/cxLibraryD10.bpl differ diff --git a/Lib/cxPageControlD10.bpl b/Lib/cxPageControlD10.bpl new file mode 100644 index 00000000..f7ba7803 Binary files /dev/null and b/Lib/cxPageControlD10.bpl differ diff --git a/Lib/dbexpress100.bpl b/Lib/dbexpress100.bpl new file mode 100644 index 00000000..195d340c Binary files /dev/null and b/Lib/dbexpress100.bpl differ diff --git a/Lib/dbrtl100.bpl b/Lib/dbrtl100.bpl new file mode 100644 index 00000000..30e8c104 Binary files /dev/null and b/Lib/dbrtl100.bpl differ diff --git a/Lib/dclcxLibraryD10.bpl b/Lib/dclcxLibraryD10.bpl new file mode 100644 index 00000000..3ae27ecb Binary files /dev/null and b/Lib/dclcxLibraryD10.bpl differ diff --git a/Lib/designide100.bpl b/Lib/designide100.bpl new file mode 100644 index 00000000..32c9746e Binary files /dev/null and b/Lib/designide100.bpl differ diff --git a/Lib/dsnap100.bpl b/Lib/dsnap100.bpl new file mode 100644 index 00000000..583465a8 Binary files /dev/null and b/Lib/dsnap100.bpl differ diff --git a/Lib/dxBarD10.bpl b/Lib/dxBarD10.bpl new file mode 100644 index 00000000..b1d22983 Binary files /dev/null and b/Lib/dxBarD10.bpl differ diff --git a/Lib/dxBarExtItemsD10.bpl b/Lib/dxBarExtItemsD10.bpl new file mode 100644 index 00000000..285df791 Binary files /dev/null and b/Lib/dxBarExtItemsD10.bpl differ diff --git a/Lib/dxComnD10.bpl b/Lib/dxComnD10.bpl new file mode 100644 index 00000000..f19da91a Binary files /dev/null and b/Lib/dxComnD10.bpl differ diff --git a/Lib/dxLayoutControlD10.bpl b/Lib/dxLayoutControlD10.bpl new file mode 100644 index 00000000..e6f70ea6 Binary files /dev/null and b/Lib/dxLayoutControlD10.bpl differ diff --git a/Lib/dxPSCoreD10.bpl b/Lib/dxPSCoreD10.bpl new file mode 100644 index 00000000..b54a2816 Binary files /dev/null and b/Lib/dxPSCoreD10.bpl differ diff --git a/Lib/dxPSLnksD10.bpl b/Lib/dxPSLnksD10.bpl new file mode 100644 index 00000000..53091e3c Binary files /dev/null and b/Lib/dxPSLnksD10.bpl differ diff --git a/Lib/dxPSPrVwAdvD10.bpl b/Lib/dxPSPrVwAdvD10.bpl new file mode 100644 index 00000000..14722a54 Binary files /dev/null and b/Lib/dxPSPrVwAdvD10.bpl differ diff --git a/Lib/dxPScxCommonD10.bpl b/Lib/dxPScxCommonD10.bpl new file mode 100644 index 00000000..62171573 Binary files /dev/null and b/Lib/dxPScxCommonD10.bpl differ diff --git a/Lib/dxPScxGridLnkD10.bpl b/Lib/dxPScxGridLnkD10.bpl new file mode 100644 index 00000000..762a8b77 Binary files /dev/null and b/Lib/dxPScxGridLnkD10.bpl differ diff --git a/Lib/dxThemeD10.bpl b/Lib/dxThemeD10.bpl new file mode 100644 index 00000000..f4383379 Binary files /dev/null and b/Lib/dxThemeD10.bpl differ diff --git a/Lib/fqb100.bpl b/Lib/fqb100.bpl new file mode 100644 index 00000000..b9b1a58c Binary files /dev/null and b/Lib/fqb100.bpl differ diff --git a/Lib/frx10.bpl b/Lib/frx10.bpl new file mode 100644 index 00000000..baa78b9b Binary files /dev/null and b/Lib/frx10.bpl differ diff --git a/Lib/frxTee10.bpl b/Lib/frxTee10.bpl new file mode 100644 index 00000000..0857308a Binary files /dev/null and b/Lib/frxTee10.bpl differ diff --git a/Lib/frxe10.bpl b/Lib/frxe10.bpl new file mode 100644 index 00000000..937cf698 Binary files /dev/null and b/Lib/frxe10.bpl differ diff --git a/Lib/fs10.bpl b/Lib/fs10.bpl new file mode 100644 index 00000000..9a280396 Binary files /dev/null and b/Lib/fs10.bpl differ diff --git a/Lib/fsTee10.bpl b/Lib/fsTee10.bpl new file mode 100644 index 00000000..7fe6023e Binary files /dev/null and b/Lib/fsTee10.bpl differ diff --git a/Lib/indy100.bpl b/Lib/indy100.bpl new file mode 100644 index 00000000..643967ca Binary files /dev/null and b/Lib/indy100.bpl differ diff --git a/Lib/rtl100.bpl b/Lib/rtl100.bpl new file mode 100644 index 00000000..81d80a5d Binary files /dev/null and b/Lib/rtl100.bpl differ diff --git a/Lib/tb2k_d10.bpl b/Lib/tb2k_d10.bpl new file mode 100644 index 00000000..fc0abf51 Binary files /dev/null and b/Lib/tb2k_d10.bpl differ diff --git a/Lib/tbx_d10.bpl b/Lib/tbx_d10.bpl new file mode 100644 index 00000000..72ba1e8d Binary files /dev/null and b/Lib/tbx_d10.bpl differ diff --git a/Lib/tee100.bpl b/Lib/tee100.bpl new file mode 100644 index 00000000..240a3e3d Binary files /dev/null and b/Lib/tee100.bpl differ diff --git a/Lib/teedb100.bpl b/Lib/teedb100.bpl new file mode 100644 index 00000000..91bed367 Binary files /dev/null and b/Lib/teedb100.bpl differ diff --git a/Lib/teeui100.bpl b/Lib/teeui100.bpl new file mode 100644 index 00000000..2c213edf Binary files /dev/null and b/Lib/teeui100.bpl differ diff --git a/Lib/vcl100.bpl b/Lib/vcl100.bpl new file mode 100644 index 00000000..1cb53fdb Binary files /dev/null and b/Lib/vcl100.bpl differ diff --git a/Lib/vclactnband100.bpl b/Lib/vclactnband100.bpl new file mode 100644 index 00000000..4907bc76 Binary files /dev/null and b/Lib/vclactnband100.bpl differ diff --git a/Lib/vcldb100.bpl b/Lib/vcldb100.bpl new file mode 100644 index 00000000..d920fda3 Binary files /dev/null and b/Lib/vcldb100.bpl differ diff --git a/Lib/vclie100.bpl b/Lib/vclie100.bpl new file mode 100644 index 00000000..42529543 Binary files /dev/null and b/Lib/vclie100.bpl differ diff --git a/Lib/vcljpg100.bpl b/Lib/vcljpg100.bpl new file mode 100644 index 00000000..6a52ae81 Binary files /dev/null and b/Lib/vcljpg100.bpl differ diff --git a/Lib/vclshlctrls100.bpl b/Lib/vclshlctrls100.bpl new file mode 100644 index 00000000..0b7efcd7 Binary files /dev/null and b/Lib/vclshlctrls100.bpl differ diff --git a/Lib/vclx100.bpl b/Lib/vclx100.bpl new file mode 100644 index 00000000..e933e1f7 Binary files /dev/null and b/Lib/vclx100.bpl differ diff --git a/Lib/xmlrtl100.bpl b/Lib/xmlrtl100.bpl new file mode 100644 index 00000000..355a5ea8 Binary files /dev/null and b/Lib/xmlrtl100.bpl differ diff --git a/Output/Debug/Cliente/AlbCli_FacCli_relation.bpl b/Output/Debug/Cliente/AlbCli_FacCli_relation.bpl new file mode 100644 index 00000000..9c55f697 Binary files /dev/null and b/Output/Debug/Cliente/AlbCli_FacCli_relation.bpl differ diff --git a/Output/Debug/Cliente/AlbProv_FacProv_relation.bpl b/Output/Debug/Cliente/AlbProv_FacProv_relation.bpl new file mode 100644 index 00000000..78eefe4e Binary files /dev/null and b/Output/Debug/Cliente/AlbProv_FacProv_relation.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesCliente_controller.bpl b/Output/Debug/Cliente/AlbaranesCliente_controller.bpl new file mode 100644 index 00000000..0e98d7ec Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesCliente_controller.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesCliente_data.bpl b/Output/Debug/Cliente/AlbaranesCliente_data.bpl new file mode 100644 index 00000000..78bb6277 Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesCliente_data.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesCliente_model.bpl b/Output/Debug/Cliente/AlbaranesCliente_model.bpl new file mode 100644 index 00000000..5f13dfda Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesCliente_model.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesCliente_plugin.bpl b/Output/Debug/Cliente/AlbaranesCliente_plugin.bpl new file mode 100644 index 00000000..73af3c77 Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesCliente_plugin.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesCliente_view.bpl b/Output/Debug/Cliente/AlbaranesCliente_view.bpl new file mode 100644 index 00000000..96a3b92a Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesCliente_view.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesProveedor_controller.bpl b/Output/Debug/Cliente/AlbaranesProveedor_controller.bpl new file mode 100644 index 00000000..8c9504de Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesProveedor_controller.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesProveedor_data.bpl b/Output/Debug/Cliente/AlbaranesProveedor_data.bpl new file mode 100644 index 00000000..6e56a339 Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesProveedor_data.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesProveedor_model.bpl b/Output/Debug/Cliente/AlbaranesProveedor_model.bpl new file mode 100644 index 00000000..6d0b3be5 Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesProveedor_model.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesProveedor_plugin.bpl b/Output/Debug/Cliente/AlbaranesProveedor_plugin.bpl new file mode 100644 index 00000000..34af0f23 Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesProveedor_plugin.bpl differ diff --git a/Output/Debug/Cliente/AlbaranesProveedor_view.bpl b/Output/Debug/Cliente/AlbaranesProveedor_view.bpl new file mode 100644 index 00000000..70e9337a Binary files /dev/null and b/Output/Debug/Cliente/AlbaranesProveedor_view.bpl differ diff --git a/Output/Debug/Cliente/Almacenes_controller.bpl b/Output/Debug/Cliente/Almacenes_controller.bpl new file mode 100644 index 00000000..70cb7e3d Binary files /dev/null and b/Output/Debug/Cliente/Almacenes_controller.bpl differ diff --git a/Output/Debug/Cliente/Almacenes_data.bpl b/Output/Debug/Cliente/Almacenes_data.bpl new file mode 100644 index 00000000..0a7a981f Binary files /dev/null and b/Output/Debug/Cliente/Almacenes_data.bpl differ diff --git a/Output/Debug/Cliente/Almacenes_model.bpl b/Output/Debug/Cliente/Almacenes_model.bpl new file mode 100644 index 00000000..6fcc4731 Binary files /dev/null and b/Output/Debug/Cliente/Almacenes_model.bpl differ diff --git a/Output/Debug/Cliente/Almacenes_plugin.bpl b/Output/Debug/Cliente/Almacenes_plugin.bpl new file mode 100644 index 00000000..471a5655 Binary files /dev/null and b/Output/Debug/Cliente/Almacenes_plugin.bpl differ diff --git a/Output/Debug/Cliente/Almacenes_view.bpl b/Output/Debug/Cliente/Almacenes_view.bpl new file mode 100644 index 00000000..c1646115 Binary files /dev/null and b/Output/Debug/Cliente/Almacenes_view.bpl differ diff --git a/Output/Debug/Cliente/Articulos_controller.bpl b/Output/Debug/Cliente/Articulos_controller.bpl new file mode 100644 index 00000000..305985e6 Binary files /dev/null and b/Output/Debug/Cliente/Articulos_controller.bpl differ diff --git a/Output/Debug/Cliente/Articulos_data.bpl b/Output/Debug/Cliente/Articulos_data.bpl new file mode 100644 index 00000000..29964ab4 Binary files /dev/null and b/Output/Debug/Cliente/Articulos_data.bpl differ diff --git a/Output/Debug/Cliente/Articulos_model.bpl b/Output/Debug/Cliente/Articulos_model.bpl new file mode 100644 index 00000000..bc003cde Binary files /dev/null and b/Output/Debug/Cliente/Articulos_model.bpl differ diff --git a/Output/Debug/Cliente/Articulos_plugin.bpl b/Output/Debug/Cliente/Articulos_plugin.bpl new file mode 100644 index 00000000..f0db2cad Binary files /dev/null and b/Output/Debug/Cliente/Articulos_plugin.bpl differ diff --git a/Output/Debug/Cliente/Articulos_view.bpl b/Output/Debug/Cliente/Articulos_view.bpl new file mode 100644 index 00000000..77585b85 Binary files /dev/null and b/Output/Debug/Cliente/Articulos_view.bpl differ diff --git a/Output/Debug/Cliente/BancaElectronica_controller.bpl b/Output/Debug/Cliente/BancaElectronica_controller.bpl new file mode 100644 index 00000000..59ccb7ae Binary files /dev/null and b/Output/Debug/Cliente/BancaElectronica_controller.bpl differ diff --git a/Output/Debug/Cliente/BancaElectronica_plugin.bpl b/Output/Debug/Cliente/BancaElectronica_plugin.bpl new file mode 100644 index 00000000..530ffd11 Binary files /dev/null and b/Output/Debug/Cliente/BancaElectronica_plugin.bpl differ diff --git a/Output/Debug/Cliente/BancaElectronica_view.bpl b/Output/Debug/Cliente/BancaElectronica_view.bpl new file mode 100644 index 00000000..134344dc Binary files /dev/null and b/Output/Debug/Cliente/BancaElectronica_view.bpl differ diff --git a/Output/Debug/Cliente/Base.bpl b/Output/Debug/Cliente/Base.bpl new file mode 100644 index 00000000..d46dd612 Binary files /dev/null and b/Output/Debug/Cliente/Base.bpl differ diff --git a/Output/Debug/Cliente/Comisiones_controller.bpl b/Output/Debug/Cliente/Comisiones_controller.bpl new file mode 100644 index 00000000..b372c3d7 Binary files /dev/null and b/Output/Debug/Cliente/Comisiones_controller.bpl differ diff --git a/Output/Debug/Cliente/Comisiones_data.bpl b/Output/Debug/Cliente/Comisiones_data.bpl new file mode 100644 index 00000000..5b611e01 Binary files /dev/null and b/Output/Debug/Cliente/Comisiones_data.bpl differ diff --git a/Output/Debug/Cliente/Comisiones_model.bpl b/Output/Debug/Cliente/Comisiones_model.bpl new file mode 100644 index 00000000..05ab7989 Binary files /dev/null and b/Output/Debug/Cliente/Comisiones_model.bpl differ diff --git a/Output/Debug/Cliente/Comisiones_plugin.bpl b/Output/Debug/Cliente/Comisiones_plugin.bpl new file mode 100644 index 00000000..4829a0a9 Binary files /dev/null and b/Output/Debug/Cliente/Comisiones_plugin.bpl differ diff --git a/Output/Debug/Cliente/Comisiones_view.bpl b/Output/Debug/Cliente/Comisiones_view.bpl new file mode 100644 index 00000000..1bd26164 Binary files /dev/null and b/Output/Debug/Cliente/Comisiones_view.bpl differ diff --git a/Output/Debug/Cliente/Contactos_controller.bpl b/Output/Debug/Cliente/Contactos_controller.bpl new file mode 100644 index 00000000..49a653d6 Binary files /dev/null and b/Output/Debug/Cliente/Contactos_controller.bpl differ diff --git a/Output/Debug/Cliente/Contactos_data.bpl b/Output/Debug/Cliente/Contactos_data.bpl new file mode 100644 index 00000000..42f1df20 Binary files /dev/null and b/Output/Debug/Cliente/Contactos_data.bpl differ diff --git a/Output/Debug/Cliente/Contactos_model.bpl b/Output/Debug/Cliente/Contactos_model.bpl new file mode 100644 index 00000000..b2a2e472 Binary files /dev/null and b/Output/Debug/Cliente/Contactos_model.bpl differ diff --git a/Output/Debug/Cliente/Contactos_plugin.bpl b/Output/Debug/Cliente/Contactos_plugin.bpl new file mode 100644 index 00000000..d510dae1 Binary files /dev/null and b/Output/Debug/Cliente/Contactos_plugin.bpl differ diff --git a/Output/Debug/Cliente/Contactos_view.bpl b/Output/Debug/Cliente/Contactos_view.bpl new file mode 100644 index 00000000..657b42ee Binary files /dev/null and b/Output/Debug/Cliente/Contactos_view.bpl differ diff --git a/Output/Debug/Cliente/ControllerBase.bpl b/Output/Debug/Cliente/ControllerBase.bpl new file mode 100644 index 00000000..1e9a1fb7 Binary files /dev/null and b/Output/Debug/Cliente/ControllerBase.bpl differ diff --git a/Output/Debug/Cliente/DataAbstract_D10.bpl b/Output/Debug/Cliente/DataAbstract_D10.bpl new file mode 100644 index 00000000..75a7bf43 Binary files /dev/null and b/Output/Debug/Cliente/DataAbstract_D10.bpl differ diff --git a/Output/Debug/Cliente/Empresas_controller.bpl b/Output/Debug/Cliente/Empresas_controller.bpl new file mode 100644 index 00000000..2f3c9cf9 Binary files /dev/null and b/Output/Debug/Cliente/Empresas_controller.bpl differ diff --git a/Output/Debug/Cliente/Empresas_data.bpl b/Output/Debug/Cliente/Empresas_data.bpl new file mode 100644 index 00000000..05fc7afa Binary files /dev/null and b/Output/Debug/Cliente/Empresas_data.bpl differ diff --git a/Output/Debug/Cliente/Empresas_model.bpl b/Output/Debug/Cliente/Empresas_model.bpl new file mode 100644 index 00000000..4dd82586 Binary files /dev/null and b/Output/Debug/Cliente/Empresas_model.bpl differ diff --git a/Output/Debug/Cliente/Empresas_plugin.bpl b/Output/Debug/Cliente/Empresas_plugin.bpl new file mode 100644 index 00000000..82b94044 Binary files /dev/null and b/Output/Debug/Cliente/Empresas_plugin.bpl differ diff --git a/Output/Debug/Cliente/Empresas_view.bpl b/Output/Debug/Cliente/Empresas_view.bpl new file mode 100644 index 00000000..c264e82b Binary files /dev/null and b/Output/Debug/Cliente/Empresas_view.bpl differ diff --git a/Output/Debug/Cliente/FactuGES.exe b/Output/Debug/Cliente/FactuGES.exe new file mode 100644 index 00000000..9051839a Binary files /dev/null and b/Output/Debug/Cliente/FactuGES.exe differ diff --git a/Output/Debug/Cliente/FacturasCliente_controller.bpl b/Output/Debug/Cliente/FacturasCliente_controller.bpl new file mode 100644 index 00000000..6e92b07a Binary files /dev/null and b/Output/Debug/Cliente/FacturasCliente_controller.bpl differ diff --git a/Output/Debug/Cliente/FacturasCliente_data.bpl b/Output/Debug/Cliente/FacturasCliente_data.bpl new file mode 100644 index 00000000..8e8be0b7 Binary files /dev/null and b/Output/Debug/Cliente/FacturasCliente_data.bpl differ diff --git a/Output/Debug/Cliente/FacturasCliente_model.bpl b/Output/Debug/Cliente/FacturasCliente_model.bpl new file mode 100644 index 00000000..0a93ae02 Binary files /dev/null and b/Output/Debug/Cliente/FacturasCliente_model.bpl differ diff --git a/Output/Debug/Cliente/FacturasCliente_plugin.bpl b/Output/Debug/Cliente/FacturasCliente_plugin.bpl new file mode 100644 index 00000000..99e5f50b Binary files /dev/null and b/Output/Debug/Cliente/FacturasCliente_plugin.bpl differ diff --git a/Output/Debug/Cliente/FacturasCliente_view.bpl b/Output/Debug/Cliente/FacturasCliente_view.bpl new file mode 100644 index 00000000..1df88b6b Binary files /dev/null and b/Output/Debug/Cliente/FacturasCliente_view.bpl differ diff --git a/Output/Debug/Cliente/FacturasProveedor_controller.bpl b/Output/Debug/Cliente/FacturasProveedor_controller.bpl new file mode 100644 index 00000000..bd176b84 Binary files /dev/null and b/Output/Debug/Cliente/FacturasProveedor_controller.bpl differ diff --git a/Output/Debug/Cliente/FacturasProveedor_data.bpl b/Output/Debug/Cliente/FacturasProveedor_data.bpl new file mode 100644 index 00000000..db915cd6 Binary files /dev/null and b/Output/Debug/Cliente/FacturasProveedor_data.bpl differ diff --git a/Output/Debug/Cliente/FacturasProveedor_model.bpl b/Output/Debug/Cliente/FacturasProveedor_model.bpl new file mode 100644 index 00000000..bddc6bbd Binary files /dev/null and b/Output/Debug/Cliente/FacturasProveedor_model.bpl differ diff --git a/Output/Debug/Cliente/FacturasProveedor_plugin.bpl b/Output/Debug/Cliente/FacturasProveedor_plugin.bpl new file mode 100644 index 00000000..1774d2f0 Binary files /dev/null and b/Output/Debug/Cliente/FacturasProveedor_plugin.bpl differ diff --git a/Output/Debug/Cliente/FacturasProveedor_view.bpl b/Output/Debug/Cliente/FacturasProveedor_view.bpl new file mode 100644 index 00000000..fed8deba Binary files /dev/null and b/Output/Debug/Cliente/FacturasProveedor_view.bpl differ diff --git a/Output/Debug/Cliente/Familias_controller.bpl b/Output/Debug/Cliente/Familias_controller.bpl new file mode 100644 index 00000000..84be6496 Binary files /dev/null and b/Output/Debug/Cliente/Familias_controller.bpl differ diff --git a/Output/Debug/Cliente/Familias_data.bpl b/Output/Debug/Cliente/Familias_data.bpl new file mode 100644 index 00000000..15bdf101 Binary files /dev/null and b/Output/Debug/Cliente/Familias_data.bpl differ diff --git a/Output/Debug/Cliente/Familias_model.bpl b/Output/Debug/Cliente/Familias_model.bpl new file mode 100644 index 00000000..a1d40cc4 Binary files /dev/null and b/Output/Debug/Cliente/Familias_model.bpl differ diff --git a/Output/Debug/Cliente/Familias_plugin.bpl b/Output/Debug/Cliente/Familias_plugin.bpl new file mode 100644 index 00000000..a70e9e02 Binary files /dev/null and b/Output/Debug/Cliente/Familias_plugin.bpl differ diff --git a/Output/Debug/Cliente/Familias_view.bpl b/Output/Debug/Cliente/Familias_view.bpl new file mode 100644 index 00000000..37c40fda Binary files /dev/null and b/Output/Debug/Cliente/Familias_view.bpl differ diff --git a/Output/Debug/Cliente/FormasPago_controller.bpl b/Output/Debug/Cliente/FormasPago_controller.bpl new file mode 100644 index 00000000..d0573fc6 Binary files /dev/null and b/Output/Debug/Cliente/FormasPago_controller.bpl differ diff --git a/Output/Debug/Cliente/FormasPago_data.bpl b/Output/Debug/Cliente/FormasPago_data.bpl new file mode 100644 index 00000000..89f722e1 Binary files /dev/null and b/Output/Debug/Cliente/FormasPago_data.bpl differ diff --git a/Output/Debug/Cliente/FormasPago_model.bpl b/Output/Debug/Cliente/FormasPago_model.bpl new file mode 100644 index 00000000..21ba8ecc Binary files /dev/null and b/Output/Debug/Cliente/FormasPago_model.bpl differ diff --git a/Output/Debug/Cliente/FormasPago_plugin.bpl b/Output/Debug/Cliente/FormasPago_plugin.bpl new file mode 100644 index 00000000..23b843d9 Binary files /dev/null and b/Output/Debug/Cliente/FormasPago_plugin.bpl differ diff --git a/Output/Debug/Cliente/FormasPago_view.bpl b/Output/Debug/Cliente/FormasPago_view.bpl new file mode 100644 index 00000000..69d1b611 Binary files /dev/null and b/Output/Debug/Cliente/FormasPago_view.bpl differ diff --git a/Output/Debug/Cliente/GUIBase.bpl b/Output/Debug/Cliente/GUIBase.bpl new file mode 100644 index 00000000..6dabdd1d Binary files /dev/null and b/Output/Debug/Cliente/GUIBase.bpl differ diff --git a/Output/Debug/Cliente/Inventario_controller.bpl b/Output/Debug/Cliente/Inventario_controller.bpl new file mode 100644 index 00000000..3ad24d2b Binary files /dev/null and b/Output/Debug/Cliente/Inventario_controller.bpl differ diff --git a/Output/Debug/Cliente/Inventario_data.bpl b/Output/Debug/Cliente/Inventario_data.bpl new file mode 100644 index 00000000..5bc04c25 Binary files /dev/null and b/Output/Debug/Cliente/Inventario_data.bpl differ diff --git a/Output/Debug/Cliente/Inventario_model.bpl b/Output/Debug/Cliente/Inventario_model.bpl new file mode 100644 index 00000000..f24f50fa Binary files /dev/null and b/Output/Debug/Cliente/Inventario_model.bpl differ diff --git a/Output/Debug/Cliente/Inventario_plugin.bpl b/Output/Debug/Cliente/Inventario_plugin.bpl new file mode 100644 index 00000000..25dee855 Binary files /dev/null and b/Output/Debug/Cliente/Inventario_plugin.bpl differ diff --git a/Output/Debug/Cliente/Inventario_view.bpl b/Output/Debug/Cliente/Inventario_view.bpl new file mode 100644 index 00000000..320340b9 Binary files /dev/null and b/Output/Debug/Cliente/Inventario_view.bpl differ diff --git a/Output/Debug/Cliente/PedCli_AlbCli_relation.bpl b/Output/Debug/Cliente/PedCli_AlbCli_relation.bpl new file mode 100644 index 00000000..f4487cdf Binary files /dev/null and b/Output/Debug/Cliente/PedCli_AlbCli_relation.bpl differ diff --git a/Output/Debug/Cliente/PedCli_PedProv_relation.bpl b/Output/Debug/Cliente/PedCli_PedProv_relation.bpl new file mode 100644 index 00000000..153c55c2 Binary files /dev/null and b/Output/Debug/Cliente/PedCli_PedProv_relation.bpl differ diff --git a/Output/Debug/Cliente/PedProv_AlbProv_relation.bpl b/Output/Debug/Cliente/PedProv_AlbProv_relation.bpl new file mode 100644 index 00000000..e9b7c0aa Binary files /dev/null and b/Output/Debug/Cliente/PedProv_AlbProv_relation.bpl differ diff --git a/Output/Debug/Cliente/PedProv_FacProv_relation.bpl b/Output/Debug/Cliente/PedProv_FacProv_relation.bpl new file mode 100644 index 00000000..4421582a Binary files /dev/null and b/Output/Debug/Cliente/PedProv_FacProv_relation.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_controller.bpl b/Output/Debug/Cliente/PedidosCliente_controller.bpl new file mode 100644 index 00000000..80573c37 Binary files /dev/null and b/Output/Debug/Cliente/PedidosCliente_controller.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_data.bpl b/Output/Debug/Cliente/PedidosCliente_data.bpl new file mode 100644 index 00000000..1f35b6d7 Binary files /dev/null and b/Output/Debug/Cliente/PedidosCliente_data.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_model.bpl b/Output/Debug/Cliente/PedidosCliente_model.bpl new file mode 100644 index 00000000..aa7c19c3 Binary files /dev/null and b/Output/Debug/Cliente/PedidosCliente_model.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_plugin.bpl b/Output/Debug/Cliente/PedidosCliente_plugin.bpl new file mode 100644 index 00000000..fdeb4c65 Binary files /dev/null and b/Output/Debug/Cliente/PedidosCliente_plugin.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_view.bpl b/Output/Debug/Cliente/PedidosCliente_view.bpl new file mode 100644 index 00000000..73b6cc81 Binary files /dev/null and b/Output/Debug/Cliente/PedidosCliente_view.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_controller.bpl b/Output/Debug/Cliente/PedidosProveedor_controller.bpl new file mode 100644 index 00000000..431ab5ba Binary files /dev/null and b/Output/Debug/Cliente/PedidosProveedor_controller.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_data.bpl b/Output/Debug/Cliente/PedidosProveedor_data.bpl new file mode 100644 index 00000000..3baf82be Binary files /dev/null and b/Output/Debug/Cliente/PedidosProveedor_data.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_model.bpl b/Output/Debug/Cliente/PedidosProveedor_model.bpl new file mode 100644 index 00000000..4ab53dd8 Binary files /dev/null and b/Output/Debug/Cliente/PedidosProveedor_model.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_plugin.bpl b/Output/Debug/Cliente/PedidosProveedor_plugin.bpl new file mode 100644 index 00000000..cc003559 Binary files /dev/null and b/Output/Debug/Cliente/PedidosProveedor_plugin.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_view.bpl b/Output/Debug/Cliente/PedidosProveedor_view.bpl new file mode 100644 index 00000000..c9709bdd Binary files /dev/null and b/Output/Debug/Cliente/PedidosProveedor_view.bpl differ diff --git a/Output/Debug/Cliente/RecibosCliente_controller.bpl b/Output/Debug/Cliente/RecibosCliente_controller.bpl new file mode 100644 index 00000000..d90c3258 Binary files /dev/null and b/Output/Debug/Cliente/RecibosCliente_controller.bpl differ diff --git a/Output/Debug/Cliente/RecibosCliente_data.bpl b/Output/Debug/Cliente/RecibosCliente_data.bpl new file mode 100644 index 00000000..452d06a9 Binary files /dev/null and b/Output/Debug/Cliente/RecibosCliente_data.bpl differ diff --git a/Output/Debug/Cliente/RecibosCliente_model.bpl b/Output/Debug/Cliente/RecibosCliente_model.bpl new file mode 100644 index 00000000..1659c5c9 Binary files /dev/null and b/Output/Debug/Cliente/RecibosCliente_model.bpl differ diff --git a/Output/Debug/Cliente/RecibosCliente_plugin.bpl b/Output/Debug/Cliente/RecibosCliente_plugin.bpl new file mode 100644 index 00000000..c69908f4 Binary files /dev/null and b/Output/Debug/Cliente/RecibosCliente_plugin.bpl differ diff --git a/Output/Debug/Cliente/RecibosCliente_view.bpl b/Output/Debug/Cliente/RecibosCliente_view.bpl new file mode 100644 index 00000000..c00b46e1 Binary files /dev/null and b/Output/Debug/Cliente/RecibosCliente_view.bpl differ diff --git a/Output/Debug/Cliente/RecibosProveedor_controller.bpl b/Output/Debug/Cliente/RecibosProveedor_controller.bpl new file mode 100644 index 00000000..bf91d3da Binary files /dev/null and b/Output/Debug/Cliente/RecibosProveedor_controller.bpl differ diff --git a/Output/Debug/Cliente/RecibosProveedor_data.bpl b/Output/Debug/Cliente/RecibosProveedor_data.bpl new file mode 100644 index 00000000..3b346f7e Binary files /dev/null and b/Output/Debug/Cliente/RecibosProveedor_data.bpl differ diff --git a/Output/Debug/Cliente/RecibosProveedor_model.bpl b/Output/Debug/Cliente/RecibosProveedor_model.bpl new file mode 100644 index 00000000..0e7a84ea Binary files /dev/null and b/Output/Debug/Cliente/RecibosProveedor_model.bpl differ diff --git a/Output/Debug/Cliente/RecibosProveedor_plugin.bpl b/Output/Debug/Cliente/RecibosProveedor_plugin.bpl new file mode 100644 index 00000000..7b2066fe Binary files /dev/null and b/Output/Debug/Cliente/RecibosProveedor_plugin.bpl differ diff --git a/Output/Debug/Cliente/RecibosProveedor_view.bpl b/Output/Debug/Cliente/RecibosProveedor_view.bpl new file mode 100644 index 00000000..2b6f340c Binary files /dev/null and b/Output/Debug/Cliente/RecibosProveedor_view.bpl differ diff --git a/Output/Debug/Cliente/RemesasCliente_controller.bpl b/Output/Debug/Cliente/RemesasCliente_controller.bpl new file mode 100644 index 00000000..766547a5 Binary files /dev/null and b/Output/Debug/Cliente/RemesasCliente_controller.bpl differ diff --git a/Output/Debug/Cliente/RemesasCliente_data.bpl b/Output/Debug/Cliente/RemesasCliente_data.bpl new file mode 100644 index 00000000..c53bc218 Binary files /dev/null and b/Output/Debug/Cliente/RemesasCliente_data.bpl differ diff --git a/Output/Debug/Cliente/RemesasCliente_model.bpl b/Output/Debug/Cliente/RemesasCliente_model.bpl new file mode 100644 index 00000000..db2d2c6f Binary files /dev/null and b/Output/Debug/Cliente/RemesasCliente_model.bpl differ diff --git a/Output/Debug/Cliente/RemesasCliente_plugin.bpl b/Output/Debug/Cliente/RemesasCliente_plugin.bpl new file mode 100644 index 00000000..3b45b7dd Binary files /dev/null and b/Output/Debug/Cliente/RemesasCliente_plugin.bpl differ diff --git a/Output/Debug/Cliente/RemesasCliente_view.bpl b/Output/Debug/Cliente/RemesasCliente_view.bpl new file mode 100644 index 00000000..87277c49 Binary files /dev/null and b/Output/Debug/Cliente/RemesasCliente_view.bpl differ diff --git a/Output/Debug/Cliente/TiendaWeb_controller.bpl b/Output/Debug/Cliente/TiendaWeb_controller.bpl new file mode 100644 index 00000000..b9631418 Binary files /dev/null and b/Output/Debug/Cliente/TiendaWeb_controller.bpl differ diff --git a/Output/Debug/Cliente/TiendaWeb_data.bpl b/Output/Debug/Cliente/TiendaWeb_data.bpl new file mode 100644 index 00000000..d8d2c5ff Binary files /dev/null and b/Output/Debug/Cliente/TiendaWeb_data.bpl differ diff --git a/Output/Debug/Cliente/TiendaWeb_model.bpl b/Output/Debug/Cliente/TiendaWeb_model.bpl new file mode 100644 index 00000000..f73b57a0 Binary files /dev/null and b/Output/Debug/Cliente/TiendaWeb_model.bpl differ diff --git a/Output/Debug/Cliente/TiendaWeb_plugin.bpl b/Output/Debug/Cliente/TiendaWeb_plugin.bpl new file mode 100644 index 00000000..c7a3a800 Binary files /dev/null and b/Output/Debug/Cliente/TiendaWeb_plugin.bpl differ diff --git a/Output/Debug/Cliente/TiendaWeb_view.bpl b/Output/Debug/Cliente/TiendaWeb_view.bpl new file mode 100644 index 00000000..39e26b58 Binary files /dev/null and b/Output/Debug/Cliente/TiendaWeb_view.bpl differ diff --git a/Output/Debug/Cliente/TiposIVA_controller.bpl b/Output/Debug/Cliente/TiposIVA_controller.bpl new file mode 100644 index 00000000..47d9630e Binary files /dev/null and b/Output/Debug/Cliente/TiposIVA_controller.bpl differ diff --git a/Output/Debug/Cliente/TiposIVA_data.bpl b/Output/Debug/Cliente/TiposIVA_data.bpl new file mode 100644 index 00000000..b9232b94 Binary files /dev/null and b/Output/Debug/Cliente/TiposIVA_data.bpl differ diff --git a/Output/Debug/Cliente/TiposIVA_model.bpl b/Output/Debug/Cliente/TiposIVA_model.bpl new file mode 100644 index 00000000..5622cfeb Binary files /dev/null and b/Output/Debug/Cliente/TiposIVA_model.bpl differ diff --git a/Output/Debug/Cliente/TiposIVA_plugin.bpl b/Output/Debug/Cliente/TiposIVA_plugin.bpl new file mode 100644 index 00000000..ef26843e Binary files /dev/null and b/Output/Debug/Cliente/TiposIVA_plugin.bpl differ diff --git a/Output/Debug/Cliente/TiposIVA_view.bpl b/Output/Debug/Cliente/TiposIVA_view.bpl new file mode 100644 index 00000000..02878cae Binary files /dev/null and b/Output/Debug/Cliente/TiposIVA_view.bpl differ diff --git a/Output/Debug/Cliente/Usuarios.bpl b/Output/Debug/Cliente/Usuarios.bpl new file mode 100644 index 00000000..c000cebf Binary files /dev/null and b/Output/Debug/Cliente/Usuarios.bpl differ diff --git a/Output/Debug/Cliente/dunit.ini b/Output/Debug/Cliente/dunit.ini new file mode 100644 index 00000000..62830e87 --- /dev/null +++ b/Output/Debug/Cliente/dunit.ini @@ -0,0 +1,25 @@ +[Tests.TiendaWeb_Tests.exe] +TestTOscCustomersController=0 + +[Tests.TiendaWeb_Tests.exe.TestTTiendaWebController] +TestActualizarTienda=0 + +[GUITestRunner Config] +AutoSave=1 +Left=686 +Top=422 +Width=446 +Height=470 +Maximized=0 +UseRegistry=0 +ResultsPanel.Height=174 +ErrorMessage.Height=75 +ErrorMessage.Visible=1 +FailureList.ColumnWidth[0]=120 +FailureList.ColumnWidth[1]=100 +FailureList.ColumnWidth[2]=200 +FailureList.ColumnWidth[3]=50 +HideTestNodesOnOpen=0 +BreakOnFailures=0 +SelectTestedNode=1 + diff --git a/Output/Debug/Cliente/libmySQL.dll b/Output/Debug/Cliente/libmySQL.dll new file mode 100644 index 00000000..0e4fa175 Binary files /dev/null and b/Output/Debug/Cliente/libmySQL.dll differ diff --git a/Output/Debug/Cliente/midas.bat b/Output/Debug/Cliente/midas.bat new file mode 100644 index 00000000..bbc9134b --- /dev/null +++ b/Output/Debug/Cliente/midas.bat @@ -0,0 +1,2 @@ +copy midas.dll %windir%\system32 +regsvr32 %windir%\system32\midas.dll \ No newline at end of file diff --git a/Output/Debug/Cliente/midas.dll b/Output/Debug/Cliente/midas.dll new file mode 100644 index 00000000..17e795b1 Binary files /dev/null and b/Output/Debug/Cliente/midas.dll differ diff --git a/Output/Debug/Cliente/update/versionlocal.ini b/Output/Debug/Cliente/update/versionlocal.ini new file mode 100644 index 00000000..8502f74b --- /dev/null +++ b/Output/Debug/Cliente/update/versionlocal.ini @@ -0,0 +1,18 @@ +[Version] +Count=1 +CurrentProductionProgramVersion=2.0.4.0 +CurrentBetaProgramVersion= +CurrentAlphaProgramVersion= + +[Program Version 0] +DownloadPasswordRequired=FALSE +ProgramLocationPath=files +ProgramLocationFileName=instalar.exe +ProgramVersion=2.0.4.0 +ProgramReleaseType=prtProduction +ProgramSize=1000000 +ProgramReleaseDate=05/06/2007 + +[Program Version 0\VersionDescription] +Count=0 + diff --git a/Output/Debug/FactuGES.exe b/Output/Debug/FactuGES.exe new file mode 100644 index 00000000..eea4c4c9 Binary files /dev/null and b/Output/Debug/FactuGES.exe differ diff --git a/Output/Debug/Servidor/FactuGES_Server.exe b/Output/Debug/Servidor/FactuGES_Server.exe new file mode 100644 index 00000000..af26e8a3 Binary files /dev/null and b/Output/Debug/Servidor/FactuGES_Server.exe differ diff --git a/Output/Debug/Servidor/GDS32.DLL b/Output/Debug/Servidor/GDS32.DLL new file mode 100644 index 00000000..f1148b77 Binary files /dev/null and b/Output/Debug/Servidor/GDS32.DLL differ diff --git a/Output/Debug/Servidor/Informes/InfAlbaranCliente.fr3 b/Output/Debug/Servidor/Informes/InfAlbaranCliente.fr3 new file mode 100644 index 00000000..9888ffe6 --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfAlbaranCliente.fr3 @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfComision.fr3 b/Output/Debug/Servidor/Informes/InfComision.fr3 new file mode 100644 index 00000000..ffd13470 --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfComision.fr3 @@ -0,0 +1,4 @@ + + + + diff --git a/Output/Debug/Servidor/Informes/InfComisiones.fr3 b/Output/Debug/Servidor/Informes/InfComisiones.fr3 new file mode 100644 index 00000000..30ee2efc --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfComisiones.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 b/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 new file mode 100644 index 00000000..1ea5fdea --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfPedidoCliente.fr3 b/Output/Debug/Servidor/Informes/InfPedidoCliente.fr3 new file mode 100644 index 00000000..bcf499bf --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfPedidoCliente.fr3 @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfPedidoProveedor.fr3 b/Output/Debug/Servidor/Informes/InfPedidoProveedor.fr3 new file mode 100644 index 00000000..5b8cf7e4 --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfPedidoProveedor.fr3 @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfReciboCliente.fr3 b/Output/Debug/Servidor/Informes/InfReciboCliente.fr3 new file mode 100644 index 00000000..e683e34f --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfReciboCliente.fr3 @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfRemesaCliente.fr3 b/Output/Debug/Servidor/Informes/InfRemesaCliente.fr3 new file mode 100644 index 00000000..8a504296 --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfRemesaCliente.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/ServerLog.txt b/Output/Debug/Servidor/ServerLog.txt new file mode 100644 index 00000000..468a99e3 --- /dev/null +++ b/Output/Debug/Servidor/ServerLog.txt @@ -0,0 +1,926 @@ +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Connect] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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))) + + Plan: PLAN JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)) + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = USUARIOS + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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 + + Plan: PLAN SORT (JOIN (RR INDEX (RDB$INDEX_42), RI INDEX (RDB$INDEX_6))) + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = USUARIOS + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Administrador + PASS = 1 + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = PERFILES + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = PERFILES + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 1 + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = EMPRESAS_USUARIOS + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = EMPRESAS_USUARIOS + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:31] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 1 + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = EMPRESAS + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = EMPRESAS + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = EMPRESAS_DATOS_BANCO + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = EMPRESAS_DATOS_BANCO + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[07/06/2007 19:48:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + 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, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[07/06/2007 19:48:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[07/06/2007 19:48:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_CATEGORIA, REFERENCIA, 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, + REGIMEN_IVA, DESCUENTO, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB + FROM + V_PROVEEDORES WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + + Plan: PLAN JOIN (V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS NATURAL, V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (PK_EMPRESAS_CONTACTOS), V_PROVEEDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PROVEEDORES PROVEEDORES_DATOS INDEX (PK_PROVEEDORES_DATOS)) + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = V_PROVEEDORES + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = V_PROVEEDORES + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:39] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_CATEGORIA, REFERENCIA, 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, + REGIMEN_IVA, DESCUENTO, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB + FROM + V_PROVEEDORES WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_DATOS_BANCO INDEX (IDX_CONTACTOS_DATOS_BANCO)) + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = CONTACTOS_DATOS_BANCO + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = CONTACTOS_DATOS_BANCO + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 3 + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS)) + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = CONTACTOS_CATEGORIAS + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = CONTACTOS_CATEGORIAS + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 3 + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS)) + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 180 + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_DATOS_BANCO INDEX (IDX_CONTACTOS_DATOS_BANCO)) + + > +[07/06/2007 19:48:40] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 180 + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_CATEGORIA, REFERENCIA, 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 + FROM + V_AGENTES WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + + Plan: PLAN JOIN (V_AGENTES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (PK_EMPRESAS_CONTACTOS), V_AGENTES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_AGENTES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS)) + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = V_AGENTES + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = V_AGENTES + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_CATEGORIA, REFERENCIA, 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 + FROM + V_AGENTES WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + AGENTES_COMISIONES.ID, AGENTES_COMISIONES.ID_AGENTE, + AGENTES_COMISIONES.ID_PROVEEDOR, CONTACTOS.NOMBRE, + AGENTES_COMISIONES.COMISION + FROM + AGENTES_COMISIONES + LEFT JOIN CONTACTOS ON (CONTACTOS.ID = AGENTES_COMISIONES.ID_PROVEEDOR) +WHERE AGENTES_COMISIONES.ID_AGENTE = :ID_AGENTE + + Plan: PLAN JOIN (AGENTES_COMISIONES NATURAL, CONTACTOS INDEX (PK_CONTACTOS)) + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = AGENTES_COMISIONES + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = AGENTES_COMISIONES + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = CONTACTOS + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = CONTACTOS + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + AGENTES_COMISIONES.ID, AGENTES_COMISIONES.ID_AGENTE, + AGENTES_COMISIONES.ID_PROVEEDOR, CONTACTOS.NOMBRE, + AGENTES_COMISIONES.COMISION + FROM + AGENTES_COMISIONES + LEFT JOIN CONTACTOS ON (CONTACTOS.ID = AGENTES_COMISIONES.ID_PROVEEDOR) +WHERE AGENTES_COMISIONES.ID_AGENTE = :ID_AGENTE + + ID_AGENTE = 4 + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_DATOS_BANCO INDEX (IDX_CONTACTOS_DATOS_BANCO)) + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA + FROM + CONTACTOS_DATOS_BANCO + WHERE ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 4 + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + Plan: PLAN (CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS)) + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_CONTACTO, ID_CATEGORIA + FROM + CONTACTOS_CATEGORIAS + WHERE + ID_CONTACTO = :ID_CONTACTO + + ID_CONTACTO = 4 + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, + DC, CUENTA + FROM + FORMAS_PAGO + + Plan: PLAN (FORMAS_PAGO NATURAL) + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = FORMAS_PAGO + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = FORMAS_PAGO + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:43] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, + DC, CUENTA + FROM + FORMAS_PAGO + + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE + FROM + FORMAS_PAGO_PLAZOS + WHERE + FORMAS_PAGO_PLAZOS.ID_FORMA_PAGO = :ID_FORMA_PAGO + + Plan: PLAN (FORMAS_PAGO_PLAZOS INDEX (FK_FORMAS_PAGO_PLAZOS)) + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = FORMAS_PAGO_PLAZOS + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = FORMAS_PAGO_PLAZOS + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE + FROM + FORMAS_PAGO_PLAZOS + WHERE + FORMAS_PAGO_PLAZOS.ID_FORMA_PAGO = :ID_FORMA_PAGO + + ID_FORMA_PAGO = 8 + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, REFERENCIA, DESCRIPCION, IVA, RE + FROM + TIPOS_IVA + + Plan: PLAN (TIPOS_IVA NATURAL) + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = TIPOS_IVA + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = TIPOS_IVA + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:44] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, REFERENCIA, DESCRIPCION, IVA, RE + FROM + TIPOS_IVA + + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.PRECIO_COSTE, + ARTICULOS.PRECIO_PORTE, + ARTICULOS.DESCUENTO, + ARTICULOS.PRECIO_NETO, + ARTICULOS.INVENTARIABLE, + ARTICULOS.ID_PROVEEDOR, + CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR +FROM ARTICULOS +LEFT OUTER JOIN CONTACTOS ON + (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR) WHERE (Articulos.ID_EMPRESA = 1) + + Plan: PLAN JOIN (ARTICULOS INDEX (FK_ARTICULOS_EMPRESA), CONTACTOS INDEX (PK_CONTACTOS)) + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [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))) + + RELATION = ARTICULOS + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [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 + + RELATION_NAME = ARTICULOS + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[07/06/2007 19:48:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.PRECIO_COSTE, + ARTICULOS.PRECIO_PORTE, + ARTICULOS.DESCUENTO, + ARTICULOS.PRECIO_NETO, + ARTICULOS.INVENTARIABLE, + ARTICULOS.ID_PROVEEDOR, + CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR +FROM ARTICULOS +LEFT OUTER JOIN CONTACTOS ON + (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR) WHERE (Articulos.ID_EMPRESA = 1) + + + > diff --git a/Output/Debug/Servidor/UIBHook.dll b/Output/Debug/Servidor/UIBHook.dll new file mode 100644 index 00000000..f0b69c2c Binary files /dev/null and b/Output/Debug/Servidor/UIBHook.dll differ diff --git a/Output/Debug/Servidor/UIBMonitor.exe b/Output/Debug/Servidor/UIBMonitor.exe new file mode 100644 index 00000000..f4a97d16 Binary files /dev/null and b/Output/Debug/Servidor/UIBMonitor.exe differ diff --git a/Output/Debug/Servidor/config.ini b/Output/Debug/Servidor/config.ini new file mode 100644 index 00000000..1af74a60 --- /dev/null +++ b/Output/Debug/Servidor/config.ini @@ -0,0 +1,3 @@ +[CONFIG] +APPPATH=E:\Codigo\Output\Servidor\FactuGES_Server.exe +LIBPATH=GDS32.DLL diff --git a/Output/Debug/Servidor/dbxmys30.dll b/Output/Debug/Servidor/dbxmys30.dll new file mode 100644 index 00000000..2b7afa47 Binary files /dev/null and b/Output/Debug/Servidor/dbxmys30.dll differ diff --git a/Output/Debug/Servidor/libmySQL.dll b/Output/Debug/Servidor/libmySQL.dll new file mode 100644 index 00000000..0e4fa175 Binary files /dev/null and b/Output/Debug/Servidor/libmySQL.dll differ diff --git a/Output/Debug/Servidor/madCHook.dll b/Output/Debug/Servidor/madCHook.dll new file mode 100644 index 00000000..53d4fbcd Binary files /dev/null and b/Output/Debug/Servidor/madCHook.dll differ diff --git a/Source/Base/Base.bdsproj b/Source/Base/Base.bdsproj new file mode 100644 index 00000000..2ef9ef74 --- /dev/null +++ b/Source/Base/Base.bdsproj @@ -0,0 +1,534 @@ + + + + + + + + + + + + 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 + + + + 3 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + Libreria base de FactuGES + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + T:\COMPON~1\jcl\lib\d10\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy9;..\DataAbstract_D10\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 + + + ExpressCommonLibrary 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. + ExpressScheduler 2 by Developer Express Inc. + ExpressQuantumTreeList 4 by Developer Express Inc. + ExpressVerticalGrid 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 + ExpressGDI+ Library by Developer Express Inc. + + + + diff --git a/Source/Base/Base.dpk b/Source/Base/Base.dpk new file mode 100644 index 00000000..1aa71795 --- /dev/null +++ b/Source/Base/Base.dpk @@ -0,0 +1,105 @@ +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 ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'Libreria base de FactuGES'} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + cxLibraryD10, + dxThemeD10, + dsnap, + dbrtl, + vcldb, + adortl, + DataAbstract_D10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxDataD10, + cxEditorsD10, + vcljpg, + vclx, + cxExportD10, + tbx_d10, + tb2k_d10, + cxIntl5D10, + vclactnband, + designide, + xmlrtl, + JvCoreD10R, + Jcl, + JclVcl, + JvPageCompsD10R, + JvStdCtrlsD10R, + JvSystemD10R, + PngComponentsD10, + PNG_D10, + JvMMD10R, + JvCtrlsD10R, + Jv3rdD10R, + dxPSCoreD10, + cxIntlPrintSys3D10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + dxPsPrVwAdvD10, + dxBarExtItemsD10, + dxBarD10, + JvAppFrmD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + jsDialog100, + indy, + JvDlgsD10R, + JvNetD10R; + +contains + uDataTableUtils in 'Utiles\uDataTableUtils.pas', + uDBSelectionListUtils in 'Utiles\uDBSelectionListUtils.pas', + uIntegerListUtils in 'Utiles\uIntegerListUtils.pas', + uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDataModule}, + uDataModuleConexion in 'uDataModuleConexion.pas' {dmConexion: TDataModule}, + uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion: TForm}, + uSistemaFunc in 'Utiles\uSistemaFunc.pas', + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + uGridUtils in 'Utiles\uGridUtils.pas', + uDateUtils in 'Utiles\uDateUtils.pas', + uDataModuleConfiguracion in 'uDataModuleConfiguracion.pas' {dmConfiguracion: TDataModule}, + uViewRegistryUtils in 'ClassRegistry\uViewRegistryUtils.pas', + uClassRegistryUtils in 'ClassRegistry\uClassRegistryUtils.pas', + uEditorRegistryUtils in 'ClassRegistry\uEditorRegistryUtils.pas', + uDialogUtils in 'Utiles\uDialogUtils.pas', + uNumUtils in 'Utiles\uNumUtils.pas', + MD5 in 'Utiles\MD5.pas', + uPasswordUtils in 'Utiles\uPasswordUtils.pas', + uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas', + uActualizacion in 'uActualizacion.pas' {fActualizacion: Form}; + +end. diff --git a/Source/Base/Base.drc b/Source/Base/Base.drc new file mode 100644 index 00000000..6038e046 --- /dev/null +++ b/Source/Base/Base.drc @@ -0,0 +1,16 @@ +/* VER180 + Generated by the Borland 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 uClassRegistryUtils_eClassnotFound 65520 +STRINGTABLE +BEGIN + uClassRegistryUtils_eClassnotFound, "Class \"%s\" was not found in the registry." +END + diff --git a/Source/Base/Base.rc b/Source/Base/Base.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Base/Base.res b/Source/Base/Base.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Base/Base.res differ diff --git a/Source/Base/ClassRegistry/uClassRegistryUtils.pas b/Source/Base/ClassRegistry/uClassRegistryUtils.pas new file mode 100644 index 00000000..74282e31 --- /dev/null +++ b/Source/Base/ClassRegistry/uClassRegistryUtils.pas @@ -0,0 +1,305 @@ +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 ) + ['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}'] + function CreateDatamodule( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TDatamodule; + 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; + + 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; + +end. diff --git a/Source/Base/ClassRegistry/uEditorRegistryUtils.pas b/Source/Base/ClassRegistry/uEditorRegistryUtils.pas new file mode 100644 index 00000000..0dd7333c --- /dev/null +++ b/Source/Base/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/ClassRegistry/uViewRegistryUtils.pas b/Source/Base/ClassRegistry/uViewRegistryUtils.pas new file mode 100644 index 00000000..458a6810 --- /dev/null +++ b/Source/Base/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/ControllerBase.drc b/Source/Base/ControllerBase.drc new file mode 100644 index 00000000..09081cc2 --- /dev/null +++ b/Source/Base/ControllerBase.drc @@ -0,0 +1,21 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */ + "\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */ + "\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */ + "\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */ + "\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */ + "\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */ + "\x53", "\x00", "\x00", "\x00" /* 0030: S... */ +END + diff --git a/Source/Base/ControllerBase/ControllerBase.bdsproj b/Source/Base/ControllerBase/ControllerBase.bdsproj new file mode 100644 index 00000000..3d57f918 --- /dev/null +++ b/Source/Base/ControllerBase/ControllerBase.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + ControllerBase.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 + + + + 3 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\Output\Debug\Cliente + ..\..\Lib + T:\COMPON~1\jcl\lib\d10\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy9;..\..\DataAbstract_D10\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/Base/ControllerBase/ControllerBase.dpk b/Source/Base/ControllerBase/ControllerBase.dpk new file mode 100644 index 00000000..900e7f3b --- /dev/null +++ b/Source/Base/ControllerBase/ControllerBase.dpk @@ -0,0 +1,43 @@ +package ControllerBase; + +{$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 + rtl, + vcl, + dbrtl, + dsnap, + DataAbstract_D10, + cxLibraryD10, + dxThemeD10, + vcldb, + adortl; + +contains + uControllerBase in 'uControllerBase.pas', + uControllerDetallesBase in 'uControllerDetallesBase.pas', + uControllerDetallesDTO in 'uControllerDetallesDTO.pas'; + +end. diff --git a/Source/Base/ControllerBase/ControllerBase.drc b/Source/Base/ControllerBase/ControllerBase.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Base/ControllerBase/ControllerBase.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Base/ControllerBase/ControllerBase.rc b/Source/Base/ControllerBase/ControllerBase.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Base/ControllerBase/ControllerBase.res b/Source/Base/ControllerBase/ControllerBase.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Base/ControllerBase/ControllerBase.res differ diff --git a/Source/Base/ControllerBase/uControllerBase.pas b/Source/Base/ControllerBase/uControllerBase.pas new file mode 100644 index 00000000..0d3f90a6 --- /dev/null +++ b/Source/Base/ControllerBase/uControllerBase.pas @@ -0,0 +1,102 @@ +unit uControllerBase; + +interface + +uses + Classes, uDADataTable; + +type + ISujeto = interface; + + IObservador = interface + ['{679D5CF2-D5DC-4A52-9FF3-04AD91402483}'] + procedure RecibirAviso(ASujeto: ISujeto); overload; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; + end; + + ISujeto = interface + ['{CDB691CD-D1D6-4F2E-AA34-93B1CD0E6030}'] + procedure AddObservador(Observador: IObservador); + procedure DeleteObservador(Observador: IObservador); + end; + + TObservador = class(TInterfacedObject, IObservador) + protected + procedure RecibirAviso(ASujeto: ISujeto); overload; virtual; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; virtual; abstract; + 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; + +implementation + +uses + SysUtils; + +{ TSujeto } + +procedure TSujeto.addObservador(Observador: IObservador); +begin + FObservadores.Add(Observador); +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; + +end. diff --git a/Source/Base/ControllerBase/uControllerDetallesBase.pas b/Source/Base/ControllerBase/uControllerDetallesBase.pas new file mode 100644 index 00000000..9b252d98 --- /dev/null +++ b/Source/Base/ControllerBase/uControllerDetallesBase.pas @@ -0,0 +1,584 @@ +unit uControllerDetallesBase; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerBase; + +const + CAMPO_ID = 'ID'; + CAMPO_POSICION = 'POSICION'; + CAMPO_TIPO = 'TIPO_DETALLE'; + CAMPO_CONCEPTO = 'CONCEPTO'; + CAMPO_CANTIDAD = 'CANTIDAD'; + CAMPO_IMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + CAMPO_IMPORTE_TOTAL = 'IMPORTE_TOTAL'; + + TIPO_DETALLE_CONCEPTO = 'Concepto'; + TIPO_DETALLE_TITULO = 'Titulo'; + TIPO_DETALLE_SUBTOTAL = 'Subtotal'; + TIPO_DETALLE_SALTO = 'Salto'; + + 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 Copy(SMExport: TSMExportToClipboard); +// procedure Paste; + + procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); + function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; + + function DarListaTiposDetalle: TStringList; + 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); + procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable); + procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable); + + //Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo + procedure validarCampos(DataTable: TDADataTable); virtual; + + //Si sobreescribimos este método 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); 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 TratamientoDetalleSubtotal(DataTable: TDADataTable); virtual; + procedure CalculoDetalleSubtotal(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 Copy(SMExport: TSMExportToClipboard); +// procedure Paste; + + procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); + function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; + function DarListaTiposDetalle: TStringList; virtual; + end; + + +implementation + +{ TControllerDetallesBase } + +uses cxControls, SysUtils, DB, uDAInterfaces; + +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.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).asInteger * 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; + +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; + try + + DataTable.First; + while DataTable.Locate(CAMPO_POSICION, IntToStr(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 + 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 + //SUBTITULOS + 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 + 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); //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 posición que la que partió + DataTable.Locate(CAMPO_POSICION, IntToStr(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); +begin + with DataTable do + begin + ImporteAcumulado := ImporteAcumulado + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat; + ImporteTotal := ImporteTotal + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat; + 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.Clear(ADataTable: IDAStronglyTypedDataTable); +begin +// +end; + +constructor TControllerDetallesBase.Create; +begin + inherited; +end; + +function TControllerDetallesBase.DarListaTiposDetalle: TStringList; +begin + Result := TStringList.Create; + Result.Values[TIPO_DETALLE_CONCEPTO] := 'Concepto'; + Result.Values[TIPO_DETALLE_TITULO] := 'Título de capítulo'; + Result.Values[TIPO_DETALLE_SUBTOTAL] := 'Final de capítulo'; + Result.Values[TIPO_DETALLE_SALTO] := 'Salto de página'; +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 + 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, IntToStr(DeletePosicion), []) then + DataTable.Delete; + end; + Renumerar(DataTable, DeletePosicion); + end; + finally + EndUpdate(ADataTable); + end; +end; + +function TControllerDetallesBase.DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer; +{ +Función que desplaza NPosiciones el numero de orden a partir del elemento con el +número 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; //Añadimos 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); + CalcularTotales(True, ADataTable.DataTable); + ADataTable.DataTable.EnableControls; + + if fUpdateCount = 0 then + AvisarObservadores(ADataTable); + + 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, IntToStr(pPosicion), []) then + Result := DataTable.FieldByName(CAMPO_TIPO).AsString; + + //Volvemos a posicionar el puntero donde estaba + DataTable.First; + if not DataTable.Locate(CAMPO_POSICION, IntToStr(posIni), []) then + raise Exception.Create('La posición ' + IntToStr(posIni) + ' no existe (getTipo)'); + end; + finally + EndUpdate(ADataTable); + 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 número 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, IntToStr(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, IntToStr(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, IntToStr(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 posición en la que estaba + DataTable.First; + DataTable.Locate(CAMPO_ID, IntToStr(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, IntToStr(i), []) then + begin + j := i; + First; + while not Locate(CAMPO_POSICION, IntToStr(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 posición dada por parametro + if Locate(CAMPO_POSICION, IntToStr(LocalizaPosicion), []) then + 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.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.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; + +end. diff --git a/Source/Base/ControllerBase/uControllerDetallesDTO.pas b/Source/Base/ControllerBase/uControllerDetallesDTO.pas new file mode 100644 index 00000000..4f17a21a --- /dev/null +++ b/Source/Base/ControllerBase/uControllerDetallesDTO.pas @@ -0,0 +1,72 @@ +unit uControllerDetallesDTO; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerDetallesBase; + +const + CAMPO_DESCUENTO = 'DESCUENTO'; + //Además del descuento tambien se añade el Precio de porte por artículo + CAMPO_IMPORTE_PORTE = 'IMPORTE_PORTE'; + +type + IControllerDetallesDTO = interface(IControllerDetallesBase) + ['{F6C5D9E4-4D3D-404F-9B6A-58D4A24B01C6}'] + end; + + TControllerDetallesDTO = class (TControllerDetallesBase, IControllerDetallesDTO) + protected + //Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo + procedure ValidarCampos(DataTable: TDADataTable); override; + + //Si sobreescribimos este método podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + end; + + +implementation + +{ TControllerDetallesBase } + +uses SysUtils, uDAInterfaces; + +function TControllerDetallesDTO.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +var + ImporteTotal : Double; +begin + ImporteTotal := 0; + + with DataTable do + begin + if (VarIsNull(FieldByName(CAMPO_DESCUENTO).AsVariant)) then + ImporteTotal := FieldByName(CAMPO_CANTIDAD).asInteger * FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat + else + ImporteTotal := FieldByName(CAMPO_CANTIDAD).asInteger * (FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat - (FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat * (FieldByName(CAMPO_DESCUENTO).AsFloat/100))); + + if (VarIsNull(FieldByName(CAMPO_IMPORTE_PORTE).AsVariant)) then + ImporteTotal := ImporteTotal + else + ImporteTotal := ImporteTotal + (FieldByName(CAMPO_CANTIDAD).asInteger * FieldByName(CAMPO_IMPORTE_PORTE).AsFloat); + end; + + Result := ImporteTotal; +end; + +procedure TControllerDetallesDTO.validarCampos(DataTable: TDADataTable); +var + AField: TDAField; +begin + inherited; + //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; + +end. diff --git a/Source/Base/GUIBase/GUIBase.bdsproj b/Source/Base/GUIBase/GUIBase.bdsproj new file mode 100644 index 00000000..ad2c0046 --- /dev/null +++ b/Source/Base/GUIBase/GUIBase.bdsproj @@ -0,0 +1,687 @@ + + + + + + + + + + + + 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 + + + + 3 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\Output\Debug\Cliente + ..\..\Lib + T:\COMPON~1\jcl\lib\d10\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy9;..\..\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 Data Abstract - IDE Package + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + RemObjects Data Abstract - ADOExpress/dbGo Driver + RemObjects Data Abstract - InterBase Express Driver + RemObjects Data Abstract - dbExpress Driver + RemObjects Data Abstract - Scripting Integration Library + TeeChart Components + + + + diff --git a/Source/Base/GUIBase/GUIBase.dpk b/Source/Base/GUIBase/GUIBase.dpk new file mode 100644 index 00000000..aedb3d47 --- /dev/null +++ b/Source/Base/GUIBase/GUIBase.dpk @@ -0,0 +1,112 @@ +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 ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + DataAbstract_D10, + Base, + vcl, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + tbx_d10, + tb2k_d10, + ccpack10, + designide, + xmlrtl, + vclactnband, + dsnap, + adortl, + dxLayoutControlD10, + dxComnD10, + dxPSCoreD10, + frx10, + fs10, + fqb100, + bdertl, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + dxPScxCommonD10, + dxPSLnksD10, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + dxPsPrVwAdvD10, + dxBarExtItemsD10, + dxBarD10, + GUISDK_D10, + cfpack_d10, + JvAppFrmD10R, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + PNG_D10, + PngComponentsD10, + ControllerBase, + cxIntlPrintSys3D10; + +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}, + uBizInformesBase in 'uBizInformesBase.pas', + 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}; + +end. diff --git a/Source/Base/GUIBase/GUIBase.drc b/Source/Base/GUIBase/GUIBase.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Base/GUIBase/GUIBase.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Base/GUIBase/GUIBase.rc b/Source/Base/GUIBase/GUIBase.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Base/GUIBase/GUIBase.res b/Source/Base/GUIBase/GUIBase.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Base/GUIBase/GUIBase.res differ diff --git a/Source/Base/GUIBase/_uViewGridBase.pas b/Source/Base/GUIBase/_uViewGridBase.pas new file mode 100644 index 00000000..6151a2a3 --- /dev/null +++ b/Source/Base/GUIBase/_uViewGridBase.pas @@ -0,0 +1,345 @@ +{*******************************************************} +{ } +{ Administración 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, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils; + +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; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + + 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; + end; + + + TfrViewGridBase = class(TfrViewBase, IViewGridBase) + dsDataSource: TDADataSource; + private + FFilter: string; + FOnFilterChanged : TNotifyEvent; + procedure FiltrarGrid(TextoFiltro : String); + protected + FGridStatus : TcxGridStatus; + 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; + procedure SetFilter(const Value: string); virtual; + function GetFilter: string; virtual; + function GetFiltered: Boolean; virtual; + procedure FilterChanged(Sender : TObject); virtual; + public + constructor Create(AOwner: TComponent); override; + + procedure ShowEmbedded(const AParent : TWinControl); override; + + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + + function IsEmpty : Boolean; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure GotoFirst; + procedure GotoLast; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + property Filter: string read GetFilter write SetFilter; + property Filtered : Boolean read GetFiltered; + 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; + destructor Destroy; override; + end; + +procedure Register; + +implementation + +uses + CCReg, uDataModuleBase, uDBSelectionListUtils; + +{$R *.dfm} + +procedure Register; +begin + RegisterCustomContainer(TfrViewGridBase); +end; + +{ TfrViewGrid } + +procedure TfrViewGridBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewGridBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewGridBase.Create(AOwner: TComponent); +begin + inherited; + FFilter := ''; + FOnFilterChanged := FilterChanged; + FPopupMenu := nil; + FOnDblClick := nil; + FGridStatus := NIL; +end; + +procedure TfrViewGridBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +end; + +function TfrViewGridBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewGridBase.GetFilter: string; +begin + Result := FFilter; +end; + +function TfrViewGridBase.GetFiltered: Boolean; +begin + Result := (_FocusedView.DataController.Filter.Root.Count > 0); +end; + +function TfrViewGridBase.GetMultiSelect: Boolean; +begin + Result := _FocusedView.OptionsSelection.MultiSelect; +end; + +function TfrViewGridBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +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; + +function TfrViewGridBase.IsEmpty: Boolean; +begin + Result := (_FocusedView.ViewData.RowCount < 1); +end; + +procedure TfrViewGridBase.Preview; +begin + +end; + +procedure TfrViewGridBase.Print; +begin + +end; + +procedure TfrViewGridBase.PrintSetup; +begin + +end; + +procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGridBase.RestoreGridStatus; +begin + if Assigned(FGridStatus) then + FGridStatus.Restore(_FocusedView); +end; + +procedure TfrViewGridBase.SaveGridStatus; +begin + FreeAndNil(FGridStatus); + FGridStatus := TcxGridStatus.Create(_FocusedView); +end; + +procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewGridBase.SetFilter(const Value: string); +begin + if FFilter <> Value then + begin + FFilter := Value; + FiltrarGrid(FFilter); + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); + end; +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.ShowEmbedded(const AParent: TWinControl); +begin + inherited; + + // No activar la tabla ya por si acaso tuviera parámetros +{ 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.StoreToRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); +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/Base/GUIBase/uBizInformesBase.pas b/Source/Base/GUIBase/uBizInformesBase.pas new file mode 100644 index 00000000..3a96c412 --- /dev/null +++ b/Source/Base/GUIBase/uBizInformesBase.pas @@ -0,0 +1,14 @@ +unit uBizInformesBase; + +interface + +type + IBizInformesAware = interface + ['{98AD6541-199F-4155-B394-ED0316298759}'] + procedure Preview; + procedure Print; + end; + +implementation + +end. diff --git a/Source/Base/GUIBase/uDialogBase.dfm b/Source/Base/GUIBase/uDialogBase.dfm new file mode 100644 index 00000000..bd474ab3 --- /dev/null +++ b/Source/Base/GUIBase/uDialogBase.dfm @@ -0,0 +1,106 @@ +object fDialogBase: TfDialogBase + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'fDialogBase' + ClientHeight = 430 + ClientWidth = 623 + Color = clWindow + 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 pnlBotones: TFlowPanel + Left = 0 + Top = 374 + Width = 623 + Height = 56 + Align = alBottom + FlowStyle = fsBottomTopRightLeft + Padding.Left = 20 + Padding.Top = 20 + Padding.Right = 20 + Padding.Bottom = 15 + ParentBackground = False + TabOrder = 0 + VerticalAlignment = taAlignTop + object Button1: TButton + Left = 527 + Top = 15 + Width = 75 + Height = 25 + Action = actCancelar + TabOrder = 0 + end + object Button2: TButton + AlignWithMargins = True + Left = 437 + Top = 15 + Width = 75 + Height = 25 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 15 + Margins.Bottom = 0 + Action = actAceptar + TabOrder = 1 + end + end + object FlowPanel1: TFlowPanel + Left = 0 + Top = 0 + Width = 623 + Height = 374 + Align = alClient + Padding.Left = 30 + Padding.Top = 30 + Padding.Right = 30 + Padding.Bottom = 30 + ParentColor = True + TabOrder = 1 + object lblInstruccion: TLabel + AlignWithMargins = True + Left = 31 + Top = 31 + Width = 78 + Height = 19 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 20 + Align = alTop + Caption = 'Instrucci'#243'n' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label2: TLabel + Left = 31 + Top = 70 + Width = 571 + Height = 81 + Align = alTop + AutoSize = False + Caption = 'Comentarios' + end + end + object ActionList1: TActionList + Left = 16 + Top = 384 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Source/Base/GUIBase/uDialogBase.pas b/Source/Base/GUIBase/uDialogBase.pas new file mode 100644 index 00000000..959620f4 --- /dev/null +++ b/Source/Base/GUIBase/uDialogBase.pas @@ -0,0 +1,39 @@ +unit uDialogBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ActnList; + +type + TfDialogBase = class(TForm) + pnlBotones: TFlowPanel; + Button1: TButton; + Button2: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + FlowPanel1: TFlowPanel; + lblInstruccion: TLabel; + Label2: TLabel; + procedure FormShow(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleBase, JvNavigationPane; + +procedure TfDialogBase.FormShow(Sender: TObject); +begin + lblInstruccion.Font.Color := dmBase.StyleManager.Colors.HeaderColorTo; +end; + +end. diff --git a/Source/Base/GUIBase/uEditorBase.dfm b/Source/Base/GUIBase/uEditorBase.dfm new file mode 100644 index 00000000..c8e82697 --- /dev/null +++ b/Source/Base/GUIBase/uEditorBase.dfm @@ -0,0 +1,1706 @@ +object fEditorBase: TfEditorBase + Left = 222 + Top = 127 + Caption = 'EditorBase' + ClientHeight = 458 + ClientWidth = 650 + 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 = 650 + 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 + ExplicitWidth = 652 + object Image1: TImage + Left = 625 + 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 = 650 + Height = 49 + AllowDrag = False + object tbxMain: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + DragHandleStyle = dhNone + 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 = 650 + Height = 19 + Panels = <> + ExplicitTop = 441 + ExplicitWidth = 652 + 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 + end + object actGuardarCerrar: TAction + Category = 'Archivo' + Caption = 'G&uardar y cerrar' + ImageIndex = 17 + OnExecute = actGuardarCerrarExecute + end + object actGuardar: TAction + Category = 'Archivo' + Caption = '&Guardar' + ImageIndex = 17 + OnExecute = actGuardarExecute + end + object actEliminar: TAction + Category = 'Archivo' + Caption = 'Eliminar' + ImageIndex = 4 + ShortCut = 16430 + OnExecute = actEliminarExecute + 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 + 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 + 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/Base/GUIBase/uEditorBase.pas b/Source/Base/GUIBase/uEditorBase.pas new file mode 100644 index 00000000..d06820e5 --- /dev/null +++ b/Source/Base/GUIBase/uEditorBase.pas @@ -0,0 +1,397 @@ +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 ShowModal : Integer; + 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); + protected + 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; + public + constructor Create(AOwner: TComponent); override; + function ShowModal : Integer; + published + procedure FormShow(Sender: TObject); virtual; + end; + + TfEditorBaseClass = class of TfEditorBase; + +implementation + +{$R *.dfm} + +uses + Menus, uDataModuleBase, cxControls, uDialogUtils; + +{ +********************************* 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.actGuardarCerrarExecute(Sender: TObject); +begin + ShowHourglassCursor; + try + if actGuardar.Execute then + actCerrar.Execute; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorBase.actGuardarExecute(Sender: TObject); +begin + GuardarInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actImprimirExecute(Sender: TObject); +begin + if actImprimir.Enabled then + begin + ImprimirInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actModificarExecute(Sender: TObject); +begin + if actModificar.Enabled then + begin + ModificarInterno; + ActualizarEstadoEditor; + end; +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 + PrevisualizarInterno; + ActualizarEstadoEditor; + 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; + +procedure TfEditorBase.GuardarInterno; +begin + // +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('Atención', + '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); +begin + JvNavPanelHeader.Caption := ATitulo; + Caption := ATitulo; +end; + +procedure TfEditorBase.PrevisualizarInterno; +begin + // +end; + +procedure TfEditorBase.RefrescarInterno; +begin + // +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/Base/GUIBase/uEditorBasico.dfm b/Source/Base/GUIBase/uEditorBasico.dfm new file mode 100644 index 00000000..ef85a644 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uEditorBasico.pas b/Source/Base/GUIBase/uEditorBasico.pas new file mode 100644 index 00000000..7a8e97d1 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uEditorDBBase.dfm b/Source/Base/GUIBase/uEditorDBBase.dfm new file mode 100644 index 00000000..c08b7b14 --- /dev/null +++ b/Source/Base/GUIBase/uEditorDBBase.dfm @@ -0,0 +1,68 @@ +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 tbxMenu: TTBXToolbar + ExplicitWidth = 648 + end + end + inherited StatusBar: TJvStatusBar + Top = 437 + Width = 648 + ExplicitTop = 437 + ExplicitWidth = 648 + end + inherited EditorActionList: TActionList + inherited actModificar: TAction + OnUpdate = actModificarUpdate + end + inherited actGuardarCerrar: TAction + OnUpdate = actGuardarCerrarUpdate + end + inherited actGuardar: TAction + OnUpdate = actGuardarUpdate + end + inherited actEliminar: TAction + OnUpdate = actEliminarUpdate + end + 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/Base/GUIBase/uEditorDBBase.pas b/Source/Base/GUIBase/uEditorDBBase.pas new file mode 100644 index 00000000..fefab488 --- /dev/null +++ b/Source/Base/GUIBase/uEditorDBBase.pas @@ -0,0 +1,247 @@ +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; + +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 GetModified: Boolean; override; + procedure RefrescarInterno; override; + procedure CancelarCambiosInterno; override; + end; + +implementation + +uses + uDataTableUtils, uBizInformesBase, + uDAInterfaces, 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; + + { Comprobar si el bookmark no es válido cuando estamos cancelando la + inserción de una fila nueva. + CUIDADO!! Si no es válido salta una excepción. 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; + 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; +end; + +function TfEditorDBBase.GetModified: Boolean; +begin + 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; + +procedure TfEditorDBBase.RefrescarInterno; +var + ABookmark : TBookmark; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then + Exit; // No continuar con el refresco + + ABookmark := dsDataTable.DataTable.GetBookMark; + dsDataTable.DataTable.DisableControls; //<- No descomentar + + ShowHourglassCursor; + try + dsDataTable.DataTable.Refresh; + + if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + finally + dsDataTable.DataTable.FreeBookmark(ABookmark); + dsDataTable.DataTable.EnableControls; //<- No descomentar + HideHourglassCursor; + 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 ningún dato. } + if Assigned(dsDataTable.DataTable) and (not Modified) then + dsDataTable.DataTable.Cancel; + inherited; +end; + +procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and (dsDataTable.DataTable.State <> dsInsert) +end; + +procedure TfEditorDBBase.actGuardarCerrarUpdate(Sender: TObject); +begin + inherited; +// (Sender as TAction).Enabled := Self.Modified; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actGuardarUpdate(Sender: TObject); +begin + inherited; +// (Sender as TAction).Enabled := Self.Modified; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +initialization + RegisterClass(TfEditorDBBase); + +finalization + UnRegisterClass(TfEditorDBBase); + +end. diff --git a/Source/Base/GUIBase/uEditorDBItem.dfm b/Source/Base/GUIBase/uEditorDBItem.dfm new file mode 100644 index 00000000..d1144eda --- /dev/null +++ b/Source/Base/GUIBase/uEditorDBItem.dfm @@ -0,0 +1,103 @@ +inherited fEditorDBItem: TfEditorDBItem + Left = 450 + Top = 321 + Caption = 'fEditorDBItem' + ClientHeight = 461 + ClientWidth = 652 + ExplicitWidth = 660 + ExplicitHeight = 495 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 652 + ExplicitWidth = 652 + inherited Image1: TImage + Left = 625 + ExplicitLeft = 627 + ExplicitHeight = 19 + end + end + inherited TBXDock: TTBXDock + Width = 652 + ExplicitWidth = 652 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 599 + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 652 + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + end + end + object pgPaginas: TPageControl [2] + Left = 0 + Top = 76 + Width = 652 + Height = 366 + 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 = 652 + Panels = < + item + Width = 200 + Control = imgStatus + end> + ExplicitTop = 442 + ExplicitWidth = 652 + 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/Base/GUIBase/uEditorDBItem.pas b/Source/Base/GUIBase/uEditorDBItem.pas new file mode 100644 index 00000000..290747bb --- /dev/null +++ b/Source/Base/GUIBase/uEditorDBItem.pas @@ -0,0 +1,93 @@ +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; + +type + IEditorDBItem = interface(IEditorDBBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) + pgPaginas: TPageControl; + pagGeneral: TTabSheet; + imgStatus: TImage; + protected + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure ActualizarEstadoEditor; override; + end; + +implementation + +uses + uBizInformesBase, uEditorBase, uDialogUtils; + +{$R *.dfm} + +procedure TfEditorDBItem.ActualizarEstadoEditor; +begin + inherited; + if HayDatos then + begin + 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.ImprimirInterno; +begin + inherited; + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede imprimir 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; +end; + +procedure TfEditorDBItem.PrevisualizarInterno; +begin + inherited; + 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 + actGuardar.Execute + else + ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); + end; +end; + +initialization + RegisterClass(TfEditorDBItem); + +finalization + UnRegisterClass(TfEditorDBItem); + +end. diff --git a/Source/Base/GUIBase/uEditorGridBase.dfm b/Source/Base/GUIBase/uEditorGridBase.dfm new file mode 100644 index 00000000..9c2bb7d4 --- /dev/null +++ b/Source/Base/GUIBase/uEditorGridBase.dfm @@ -0,0 +1,1550 @@ +inherited fEditorGridBase: TfEditorGridBase + Left = 441 + Top = 354 + Caption = 'fEditorGridBase' + ClientHeight = 444 + ClientWidth = 543 + ExplicitWidth = 551 + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + Width = 543 + ExplicitTop = 0 + ExplicitWidth = 543 + inherited Image1: TImage + Left = 516 + ExplicitLeft = 518 + end + end + inherited TBXDock: TTBXDock + Top = 27 + Width = 543 + Height = 75 + ExplicitTop = 27 + ExplicitWidth = 543 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + DockPos = 0 + TabOrder = 1 + ExplicitWidth = 448 + 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 + inherited TBXItem26: TTBXItem [13] + Visible = False + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [14] + Visible = True + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + object TBXItem36: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + 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 = dhNone + Images = SmallImages + ParentShowHint = False + Resizable = False + ShowHint = True + ShrinkMode = tbsmNone + TabOrder = 0 + 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 = 543 + 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 + 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 + end + inherited StatusBar: TJvStatusBar + Top = 425 + Width = 543 + ExplicitTop = 425 + ExplicitWidth = 543 + 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 + 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 + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + 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 Actualizar1: TMenuItem + Action = actRefrescar + end + end +end diff --git a/Source/Base/GUIBase/uEditorGridBase.pas b/Source/Base/GUIBase/uEditorGridBase.pas new file mode 100644 index 00000000..2c2c4255 --- /dev/null +++ b/Source/Base/GUIBase/uEditorGridBase.pas @@ -0,0 +1,288 @@ +{*******************************************************} +{ } +{ Administración 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; + +type + IEditorGridBase = interface(IEditorDBBase) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + 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; + procedure tbxEditFiltroChange(Sender: TObject; const Text: String); + procedure FormShow(Sender: TObject); override; + procedure actQuitarFiltroExecute(Sender: TObject); + procedure actDuplicarUpdate(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure JvFormStorageRestorePlacement(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); + protected + FViewGrid : IViewGridBase; + procedure SetViewGrid(const Value : IViewGridBase); virtual; + function GetViewGrid: IViewGridBase; + + procedure PrevisualizarInterno; override; + procedure ConfPaginaInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + public + property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; + constructor Create(AOwner : TComponent); override; + + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleBase, uCustomEditor, cxGridTableView, cxControls; + +{$R *.dfm} + +{ +********************************* TfEditorGridBase ***************************** +} +destructor TfEditorGridBase.Destroy; +begin + FViewGrid := NIL; + inherited; +end; + +function TfEditorGridBase.GetViewGrid: IViewGridBase; +begin + Result := FViewGrid; +end; + +procedure TfEditorGridBase.ImprimirInterno; +begin + inherited; + ViewGrid.Print; +end; + +procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); +begin + FViewGrid := Value; + if Assigned(FViewGrid) then + begin + FViewGrid.PopupMenu := GridPopupMenu; + FViewGrid.OnDblClick := actModificar.OnExecute; + end; +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 + ViewGrid.ShowEmbedded(Self); + + +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 not ViewGrid.IsEmpty + and ViewGrid.esSeleccionCeldaDatos + else + (Sender as TAction).Enabled := False; +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; +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; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.AjustarAncho; +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; +end; + +procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root); +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; + +procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +initialization + RegisterClass(TfEditorGridBase); + +finalization + UnRegisterClass(TfEditorGridBase); + +end. + diff --git a/Source/Base/GUIBase/uEditorItem.dfm b/Source/Base/GUIBase/uEditorItem.dfm new file mode 100644 index 00000000..f9e9e425 --- /dev/null +++ b/Source/Base/GUIBase/uEditorItem.dfm @@ -0,0 +1,62 @@ +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] + Left = 0 + Top = 76 + Width = 678 + Height = 406 + ActivePage = pagGeneral + Align = alClient + TabOrder = 1 + object pagGeneral: TTabSheet + Caption = 'General' + end + end + inherited TBXDock: TTBXDock + Width = 678 + ExplicitWidth = 678 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 575 + 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/Base/GUIBase/uEditorItem.pas b/Source/Base/GUIBase/uEditorItem.pas new file mode 100644 index 00000000..d30ffdb6 --- /dev/null +++ b/Source/Base/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 uDataModuleBase; + +{$R *.dfm} + +initialization + RegisterClass(TfEditorItem); + +finalization + + UnRegisterClass(TfEditorItem); + + +end. diff --git a/Source/Base/GUIBase/uEditorPSPreview.dfm b/Source/Base/GUIBase/uEditorPSPreview.dfm new file mode 100644 index 00000000..a3f98e6d --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uEditorPSPreview.pas b/Source/Base/GUIBase/uEditorPSPreview.pas new file mode 100644 index 00000000..683b4027 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uEditorPreview.dfm b/Source/Base/GUIBase/uEditorPreview.dfm new file mode 100644 index 00000000..342544fb --- /dev/null +++ b/Source/Base/GUIBase/uEditorPreview.dfm @@ -0,0 +1,942 @@ +inherited fEditorPreview: TfEditorPreview + Left = 521 + Top = 340 + Caption = 'Previsualizar' + WindowState = wsMaximized + OnDestroy = FormDestroy + OnResize = FormResize + ExplicitWidth = 658 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 75 + Visible = False + ExplicitTop = 75 + ExplicitWidth = 650 + inherited Image1: TImage + Left = 623 + end + end + inherited TBXDock: TTBXDock + Height = 75 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + Top = 49 + DefaultDock = TBXDock + Visible = False + ExplicitTop = 49 + ExplicitWidth = 242 + end + inherited tbxMenu: TTBXToolbar + DockPos = -24 + 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 + Caption = '&Zoom' + 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 + 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 TBXItem42: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + object TBXItem41: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + 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 = 50 + end + item + Width = 50 + end> + ExplicitTop = 439 + ExplicitWidth = 650 + 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 actConfPagina: 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 + end + inherited SmallImages: TPngImageList + Left = 43 + Top = 104 + end + inherited LargeImages: TPngImageList + Left = 75 + Top = 104 + end + inherited JvFormStorage: TJvFormStorage + Left = 376 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 408 + Top = 136 + 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 + 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> + 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> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 403 + Top = 104 + Bitmap = {} + end + object frxReport1: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 38658.858023541660000000 + ReportOptions.LastChange = 38658.858023541660000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 16 + Top = 200 + Datasets = <> + Variables = <> + Style = <> + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 16 + Top = 240 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 240 + end + object frxChartObject1: TfrxChartObject + Left = 16 + Top = 272 + 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 = 304 + end + object frxDotMatrixExport1: TfrxDotMatrixExport + UseFileCache = True + ShowProgress = True + EscModel = 0 + GraphicFrames = False + SaveToFile = False + UseIniSettings = True + Left = 48 + Top = 304 + end + object frxDialogControls1: TfrxDialogControls + Left = 80 + Top = 304 + end + object frxTIFFExport1: TfrxTIFFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 240 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + PrintOptimized = False + Outline = False + Author = 'FastReport'#174 + Subject = 'FastReport'#174' PDF export' + Background = False + Creator = 'FastReport'#174' (http://www.fast-report.com)' + HTMLTags = False + Left = 144 + Top = 280 + end + object frxBMPExport1: TfrxBMPExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 320 + end +end diff --git a/Source/Base/GUIBase/uEditorPreview.pas b/Source/Base/GUIBase/uEditorPreview.pas new file mode 100644 index 00000000..48b75e08 --- /dev/null +++ b/Source/Base/GUIBase/uEditorPreview.pas @@ -0,0 +1,354 @@ +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, frxChart, frxOLE, frxBarcode, + ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar; + +type + IEditorPreview = interface(IEditorBase) + ['{43934C3E-2776-4F9E-9292-FB0D7DE2E4DA}'] + function GetReport: TfrxReport; + property Report: TfrxReport read GetReport; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + procedure Print; + procedure Preview; + 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; + frxChartObject1: TfrxChartObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxDotMatrixExport1: TfrxDotMatrixExport; + 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; + 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); + private + FPreview : TfrViewPreview; + procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); + procedure UpdateZoom; + protected + function GetReport: TfrxReport; virtual; + public + constructor Create(AOwner: TComponent); override; + property Report: TfrxReport read GetReport; + procedure Print; + procedure Preview; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + + +implementation + +uses + frxRes, frxUtils, frxPrinter, frxFormUtils, + uCustomEditor, uSistemaFunc; + +{$R *.dfm} + +{ TfEditorBase1 } + +function TfEditorPreview.GetReport: TfrxReport; +begin + Result := frxReport1; +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; + FPreview.Free; +end; + +procedure TfEditorPreview.FormResize(Sender: TObject); +begin + inherited; + UpdateZoom; +end; + +procedure TfEditorPreview.actImprimirExecute(Sender: TObject); +begin + inherited; + Print; +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 + if tbxMano.Checked then + FPreview.Preview.Tool := ptHand +end; + +procedure TfEditorPreview.actToolZoomExecute(Sender: TObject); +begin + if tbxZoom.Checked then + 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.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; + +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/Base/GUIBase/uEditorUtils.pas b/Source/Base/GUIBase/uEditorUtils.pas new file mode 100644 index 00000000..68b4b868 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uViewBarraSeleccion.dfm b/Source/Base/GUIBase/uViewBarraSeleccion.dfm new file mode 100644 index 00000000..80b9c732 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uViewBarraSeleccion.pas b/Source/Base/GUIBase/uViewBarraSeleccion.pas new file mode 100644 index 00000000..facdcb74 --- /dev/null +++ b/Source/Base/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; + +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/Base/GUIBase/uViewBase.dfm b/Source/Base/GUIBase/uViewBase.dfm new file mode 100644 index 00000000..17e1d504 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uViewBase.pas b/Source/Base/GUIBase/uViewBase.pas new file mode 100644 index 00000000..4acdb6fd --- /dev/null +++ b/Source/Base/GUIBase/uViewBase.pas @@ -0,0 +1,35 @@ +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) + public + procedure Refresh; virtual; + end; + +implementation + +{$R *.dfm} + + +uses + cxDBEdit; + +{ TfrViewBase } + +procedure TfrViewBase.Refresh; +begin + // +end; + +end. diff --git a/Source/Base/GUIBase/uViewDetallesBase.dfm b/Source/Base/GUIBase/uViewDetallesBase.dfm new file mode 100644 index 00000000..e25ac193 --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesBase.dfm @@ -0,0 +1,714 @@ +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 = 46 + AutoSize = True + ButtonWidth = 63 + 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 = 2 + Action = actAnadir + AutoSize = True + end + object ToolButton2: TToolButton + Left = 62 + Top = 2 + Action = actEliminar + AutoSize = True + end + object ToolButton3: TToolButton + Left = 129 + Top = 2 + Action = actSubir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 184 + Top = 2 + Action = actBajar + AutoSize = True + end + object ToolButton14: TToolButton + Left = 240 + Top = 2 + Action = FontEdit1 + AutoSize = True + Wrap = True + end + object FontName: TJvFontComboBox + Left = 0 + Top = 24 + Width = 145 + Height = 22 + DroppedDownWidth = 145 + MaxMRUCount = 0 + FontName = 'Tahoma' + ItemIndex = 155 + Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg] + Sorted = True + TabOrder = 2 + Visible = False + OnChange = FontNameChange + OnClick = FontNameChange + end + object FontSize: TEdit + Left = 145 + Top = 24 + 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 = 24 + Width = 16 + Height = 22 + Associate = FontSize + TabOrder = 0 + Visible = False + end + object ToolButton13: TToolButton + Left = 187 + Top = 24 + Width = 8 + Caption = 'ToolButton13' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton6: TToolButton + Left = 195 + Top = 24 + Action = RichEditBold1 + AutoSize = True + end + object ToolButton7: TToolButton + Left = 229 + Top = 24 + Action = RichEditItalic1 + AutoSize = True + end + object ToolButton8: TToolButton + Left = 263 + Top = 24 + Action = RichEditUnderline1 + AutoSize = True + end + object ToolButton12: TToolButton + Left = 297 + Top = 24 + Width = 8 + Caption = 'ToolButton12' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton9: TToolButton + Left = 305 + Top = 24 + Action = RichEditAlignLeft1 + AutoSize = True + end + object ToolButton10: TToolButton + Left = 339 + Top = 24 + Action = RichEditAlignCenter1 + AutoSize = True + end + object ToolButton11: TToolButton + Left = 373 + Top = 24 + Action = RichEditAlignRight1 + AutoSize = True + end + end + object cxGrid: TcxGrid + Left = 0 + Top = 72 + Width = 451 + Height = 232 + Align = alClient + TabOrder = 1 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + OnEditing = cxGridViewEditing + OnEditKeyDown = cxGridViewEditKeyDown + OnEditValueChanged = cxGridViewEditValueChanged + 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.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.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + OptionsView.Indicator = True + Styles.ContentEven = cxStyleEven + Styles.ContentOdd = cxStyleOdd + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object cxGridViewPOSICION: TcxGridDBColumn + DataBinding.FieldName = 'POSICION' + Visible = False + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewTIPO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPO_DETALLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = <> + BestFitMaxWidth = 64 + Width = 56 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Concepto' + DataBinding.FieldName = 'CONCEPTO' + PropertiesClassName = 'TcxRichEditProperties' + Width = 224 + end + object cxGridViewCANTIDAD: TcxGridDBColumn + Caption = 'Cantidad' + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxMaskEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 64 + HeaderAlignmentHorz = taRightJustify + Width = 130 + end + object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + Caption = 'Importe unidad' + DataBinding.FieldName = 'IMPORTE_UNIDAD' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 120 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 130 + end + object cxGridViewIMPORTETOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 120 + HeaderAlignmentHorz = taRightJustify + Options.Editing = False + Width = 130 + 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 + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object TBXDock1: TTBXDock + Left = 0 + Top = 46 + Width = 451 + Height = 26 + BackgroundOnToolbars = False + UseParentBackground = True + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'TBXToolbar1' + DragHandleStyle = dhNone + Images = ContenidoImageList + TabOrder = 0 + 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 + end + end + object ActionListContenido: TActionList + Images = ContenidoImageList + Left = 8 + Top = 104 + object actAnadir: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir' + ImageIndex = 0 + ShortCut = 45 + OnExecute = actAnadirExecute + 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 = 'Format' + AutoCheck = True + Hint = 'Negrita' + ImageIndex = 4 + ShortCut = 16450 + end + object RichEditItalic1: TRichEditItalic + Category = 'Format' + AutoCheck = True + Hint = 'Cursiva' + ImageIndex = 5 + ShortCut = 16457 + end + object RichEditUnderline1: TRichEditUnderline + Category = 'Format' + AutoCheck = True + Hint = 'Subrayado' + ImageIndex = 6 + ShortCut = 16469 + end + object RichEditAlignLeft1: TRichEditAlignLeft + Category = 'Format' + AutoCheck = True + Hint = 'Alinear a la izquierda' + ImageIndex = 7 + end + object RichEditAlignCenter1: TRichEditAlignCenter + Category = 'Format' + AutoCheck = True + Hint = 'Center|Centers text between margins' + ImageIndex = 8 + end + object RichEditAlignRight1: TRichEditAlignRight + Category = 'Format' + AutoCheck = True + Hint = 'Align Right|Aligns text at the right indent' + ImageIndex = 9 + end + object FontEdit1: TFontEdit + Category = 'Dialog' + Dialog.Font.Charset = DEFAULT_CHARSET + Dialog.Font.Color = clWindowText + Dialog.Font.Height = -11 + Dialog.Font.Name = 'Tahoma' + Dialog.Font.Style = [] + Enabled = False + Hint = 'Formato de fuente' + ImageIndex = 10 + BeforeExecute = FontEdit1BeforeExecute + OnAccept = FontEdit1Accept + end + object RichEditAlignRight2: TRichEditAlignRight + Category = 'Format' + AutoCheck = True + Caption = 'Align &Right' + Hint = 'Align Right|Aligns text at the right indent' + ImageIndex = 11 + end + object actAnchoAutomatico: TAction + Category = 'Operaciones' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 11 + OnExecute = actAnchoAutomaticoExecute + OnUpdate = actAnchoAutomaticoUpdate + 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> + Left = 40 + Top = 112 + Bitmap = {} + end + object cxStyleRepository: TcxStyleRepository + Left = 8 + Top = 168 + object cxStyleEven: TcxStyle + end + object cxStyleOdd: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyle_IMPORTETOTAL: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaptionText + end + object cxStyle_SUBTOTAL: TcxStyle + AssignedValues = [svColor] + Color = cl3DLight + end + object cxStyle_TITULO: TcxStyle + AssignedValues = [svColor] + Color = clMenuBar + end + end +end diff --git a/Source/Base/GUIBase/uViewDetallesBase.pas b/Source/Base/GUIBase/uViewDetallesBase.pas new file mode 100644 index 00000000..589d3249 --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesBase.pas @@ -0,0 +1,721 @@ +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, + uGridUtils, uControllerDetallesBase, cxCurrencyEdit, ExtCtrls, Grids, DBGrids, StdCtrls, + ExtActns, StdActns, cxRichEdit, JvExStdCtrls, JvCombobox, JvColorCombo, + TB2Item, TBX, TB2Dock, TB2Toolbar; + +type + IViewDetallesBase = interface(IViewBase) + ['{852EB860-13B6-4355-A6B0-4542AB16896F}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + 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; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + 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_IMPORTETOTAL: TcxStyle; + cxStyle_SUBTOTAL: TcxStyle; + cxStyle_TITULO: TcxStyle; + RichEditAlignRight2: TRichEditAlignRight; + actAnchoAutomatico: TAction; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXItem13: 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 cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem); + procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; 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); + + 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; + function darListaSeleccionados: TIntegerArray; + + protected + function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual; + function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; virtual; + function darTipoLetraPorDefecto: TFont; virtual; + function GetFocusedView : TcxGridDBTableView; virtual; + function GetGrid : TcxGrid; virtual; + public + procedure BeginUpdate; + procedure EndUpdate; + procedure SaveGridStatus; + procedure RestoreGridStatus; + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + 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} + +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.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 añadir + 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; + + if Assigned(Controller) + and Assigned(FDetalles) then + Controller.add(FDetalles, TIPO_DETALLE_CONCEPTO); + finally + cxGridView.EndUpdate; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actEliminarExecute(Sender: TObject); +var + AuxTop, AuxRow:Integer; + +begin + cxGridView.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); + cxGridView.DataController.SelectRows(AuxRow,AuxRow); + cxGridView.Controller.TopRowIndex := AuxTop; + end; + end + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesBase.actEliminarUpdate(Sender: TObject); +begin + if Assigned(DADataSource.DataTable) then + (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfrViewDetallesBase.actSubirUpdate(Sender: TObject); +begin + inherited; + if Assigned(cxGridView.Controller.FocusedRow) then + (Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsFirst) + else + (Sender as TAction).Enabled := False; +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.darTipoLetraPorDefecto: TFont; +begin + Result := TFont.Create; + Result.Name := 'Tahoma'; + Result.Size := 9; +end; + +destructor TfrViewDetallesBase.Destroy; +begin + FController := NIL; + FDetalles := NIL; + + if Assigned(FGridStatus) then + FreeAndNil(FGridStatus); + inherited; +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; + CurEdit := Nil; + FUpdating := False; +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; + 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 lógica del controllerDetallesBase + if cxGridView.Controller.IsFinish then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.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 lógica 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 TfrViewDetallesBase.cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem); +begin + inherited; + cxGridView.BeginUpdate; + try + if HayQueRecalcular(AItem) then + begin + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + + Controller.actualizarTotales(Detalles); + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit); +var + FuentePorDefecto: TFont; +begin + inherited; + + if AEdit is TcxRichEdit then + begin + FuentePorDefecto := darTipoLetraPorDefecto; + //La primera vez que accedemos al grid entra dos veces y perderiamos el editor + //dando un pete. + if not Assigned(CurEdit) then + begin + FontEdit1.Enabled := True; + // UpDown1.Enabled := True; + // FontSize.Enabled := True; + // FontName.Enabled := True; + + CurEdit := TcxRichEdit(AEdit); + if length(CurEdit.Text) = 0 then + CurEdit.DefAttributes.Assign(FuentePorDefecto) + end + else + if length(CurEdit.Text) = 0 then + CurEdit.DefAttributes.Assign(FuentePorDefecto); + + FreeAndNil(FuentePorDefecto); + end + else + begin + CurEdit := Nil; + FontEdit1.Enabled := False; +// UpDown1.Enabled := False; +// FontSize.Enabled := False; +// FontName.Enabled := False; + end; +end; + +procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol : Integer; + ATipo : String; +begin + if Assigned(ARecord) then + begin + IndiceCol := cxGridViewTIPO.Index; + ATipo := VarToStr(ARecord.Values[IndiceCol]); + if ATipo = TIPO_DETALLE_SUBTOTAL then + AStyle := cxStyle_SUBTOTAL; + if ATipo = TIPO_DETALLE_TITULO then + AStyle := cxStyle_TITULO; + 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 + Result := -1; + + 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) 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; + +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.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 cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + +end; + +procedure TfrViewDetallesBase.actAnchoAutomaticoExecute(Sender: TObject); +begin + inherited; + cxGridView.ApplyBestFit; +end; + +procedure TfrViewDetallesBase.actAnchoAutomaticoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not IsEmpty; +end; + +procedure TfrViewDetallesBase.actBajarExecute(Sender: TObject); +begin + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) + and Assigned(FDetalles) then + Controller.move(FDetalles, darListaSeleccionados, 1); + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesBase.actBajarUpdate(Sender: TObject); +begin + inherited; + if Assigned(cxGridView.Controller.FocusedRow) then + (Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsLast) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfrViewDetallesBase.actSubirExecute(Sender: TObject); +begin + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) + and Assigned(FDetalles) then + Controller.move(FDetalles, darListaSeleccionados, -1); + finally + cxGridView.EndUpdate; + end; +end; + +end. diff --git a/Source/Base/GUIBase/uViewDetallesDTO.dfm b/Source/Base/GUIBase/uViewDetallesDTO.dfm new file mode 100644 index 00000000..3c064d09 --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesDTO.dfm @@ -0,0 +1,93 @@ +inherited frViewDetallesDTO: TfrViewDetallesDTO + inherited ToolBar1: TToolBar + ButtonWidth = 110 + inherited ToolButton1: TToolButton + ExplicitWidth = 109 + end + inherited ToolButton2: TToolButton + Left = 109 + ExplicitLeft = 109 + ExplicitWidth = 114 + end + inherited ToolButton3: TToolButton + Left = 223 + ExplicitLeft = 223 + end + inherited ToolButton4: TToolButton + Left = 278 + ExplicitLeft = 278 + end + inherited ToolButton14: TToolButton + Left = 334 + ExplicitLeft = 334 + end + end + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + object cxGridViewDESCUENTO: TcxGridDBColumn [6] + Caption = 'Dto' + DataBinding.FieldName = 'DESCUENTO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.MaxValue = 100.000000000000000000 + end + object cxGridViewIMPORTENETO: TcxGridDBColumn [7] + Caption = 'Importe neto' + 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 + OnGetDisplayText = cxGridViewIMPORTENETOGetDisplayText + HeaderAlignmentHorz = taRightJustify + Options.Editing = False + end + object cxGridViewIMPORTEPORTE: TcxGridDBColumn [8] + Caption = 'Importe porte' + DataBinding.FieldName = 'IMPORTE_PORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited TBXDock1: TTBXDock + ExplicitTop = 72 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 447 + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + Caption = 'A'#241'adir concepto' + end + inherited actEliminar: TAction + Caption = 'Eliminar concepto' + end + inherited RichEditBold1: TRichEditBold + Visible = False + end + inherited RichEditItalic1: TRichEditItalic + Visible = False + end + inherited RichEditUnderline1: TRichEditUnderline + Visible = False + end + inherited RichEditAlignLeft1: TRichEditAlignLeft + Visible = False + end + inherited RichEditAlignCenter1: TRichEditAlignCenter + Visible = False + end + inherited RichEditAlignRight1: TRichEditAlignRight + Visible = False + end + inherited FontEdit1: TFontEdit + Visible = False + end + inherited RichEditAlignRight2: TRichEditAlignRight + Visible = False + end + end +end diff --git a/Source/Base/GUIBase/uViewDetallesDTO.pas b/Source/Base/GUIBase/uViewDetallesDTO.pas new file mode 100644 index 00000000..8625ffb3 --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesDTO.pas @@ -0,0 +1,63 @@ +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; + +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); + 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; + +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/Base/GUIBase/uViewDetallesGenerico.dfm b/Source/Base/GUIBase/uViewDetallesGenerico.dfm new file mode 100644 index 00000000..3afdb87e --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesGenerico.dfm @@ -0,0 +1,238 @@ +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.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 = 2 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 2 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 2 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 2 + Action = actEliminar + AutoSize = True + end + object ToolButton6: TToolButton + Left = 211 + Top = 2 + Width = 8 + Caption = 'ToolButton6' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton7: TToolButton + Left = 219 + Top = 2 + 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/Base/GUIBase/uViewDetallesGenerico.pas b/Source/Base/GUIBase/uViewDetallesGenerico.pas new file mode 100644 index 00000000..d379e6c8 --- /dev/null +++ b/Source/Base/GUIBase/uViewDetallesGenerico.pas @@ -0,0 +1,206 @@ +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; + +type + TfrViewDetallesGenerico = class(TfrViewBase) + 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 añadir + 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; +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 lógica 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 lógica 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/Base/GUIBase/uViewFiltroBase.dfm b/Source/Base/GUIBase/uViewFiltroBase.dfm new file mode 100644 index 00000000..f16b9c00 --- /dev/null +++ b/Source/Base/GUIBase/uViewFiltroBase.dfm @@ -0,0 +1,199 @@ +object frViewFiltroBase: TfrViewFiltroBase + Left = 0 + Top = 0 + Width = 565 + Height = 102 + TabOrder = 0 + Visible = False + object TBXDock1: TTBXDock + Left = 0 + Top = 0 + Width = 565 + Height = 102 + object TBXDockablePanel1: TTBXDockablePanel + Left = 0 + Top = 0 + Caption = 'TBXDockablePanel1' + CloseButton = False + CloseButtonWhenDocked = False + DockedHeight = 98 + DockMode = dmCannotFloatOrChangeDocks + ShowCaption = False + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 561 + Height = 68 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + ExplicitWidth = 124 + 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 + 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 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.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 = 121 + end + object edtFechaFinFiltro: TcxDateEdit + Left = 348 + Top = 37 + Properties.OnChange = OnCamposFiltroChange + 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 = 2 + Width = 121 + 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 + end + end + end + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 68 + Width = 561 + Height = 30 + Margins.Left = 10 + Align = alTop + TabOrder = 1 + object tbxBotones: TTBXToolbar + Left = 10 + Top = 0 + Width = 551 + 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 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 136 + Top = 16 + end + object ActionList1: TActionList + Images = PngImageList + Left = 384 + Top = 72 + 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 = 424 + Top = 72 + Bitmap = {} + end +end diff --git a/Source/Base/GUIBase/uViewFiltroBase.pas b/Source/Base/GUIBase/uViewFiltroBase.pas new file mode 100644 index 00000000..b22ab8fe --- /dev/null +++ b/Source/Base/GUIBase/uViewFiltroBase.pas @@ -0,0 +1,144 @@ +unit uViewFiltroBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl, + cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls, + StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList; + +type + IViewFiltroBase = interface + ['{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(TFrame, IViewFiltroBase) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutControl1Item1: TdxLayoutItem; + txtFiltroTodo: TcxTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaIniFiltro: TcxDateEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtFechaFinFiltro: TcxDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + TBXDock1: TTBXDock; + TBXDockablePanel1: TTBXDockablePanel; + ActionList1: TActionList; + actQuitarFiltro: TAction; + PngImageList: TPngImageList; + tbxBotones: TTBXToolbar; + TBXItem2: TTBXItem; + TBXAlignmentPanel1: TTBXAlignmentPanel; + 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 + 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} + +{ TfrViewFiltroBase } + +function TfrViewFiltroBase.GetFiltrosChange: TNotifyEvent; +begin + Result := FOnFiltrosChange; +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 + ShowMessage('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/Base/GUIBase/uViewFormaPago.dfm b/Source/Base/GUIBase/uViewFormaPago.dfm new file mode 100644 index 00000000..1660a70a --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uViewFormaPago.pas b/Source/Base/GUIBase/uViewFormaPago.pas new file mode 100644 index 00000000..fe3d269e --- /dev/null +++ b/Source/Base/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; + +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/Base/GUIBase/uViewGrid.dfm b/Source/Base/GUIBase/uViewGrid.dfm new file mode 100644 index 00000000..7b69e080 --- /dev/null +++ b/Source/Base/GUIBase/uViewGrid.dfm @@ -0,0 +1,333 @@ +inherited frViewGrid: TfrViewGrid + Width = 554 + Height = 594 + ExplicitWidth = 554 + ExplicitHeight = 594 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 102 + Width = 554 + Height = 466 + 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 cxGridView: TcxGridDBTableView + OnDblClick = cxGridViewDblClick + 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.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inline frViewFiltroBase1: TfrViewFiltroBase [1] + Left = 0 + Top = 0 + Width = 554 + Height = 102 + Align = alTop + TabOrder = 1 + Visible = False + ExplicitWidth = 554 + inherited TBXDock1: TTBXDock + Width = 554 + ExplicitWidth = 554 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 554 + inherited dxLayoutControl1: TdxLayoutControl + Width = 550 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 341 + ExplicitLeft = 341 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 550 + ExplicitWidth = 550 + inherited tbxBotones: TTBXToolbar + Width = 540 + ExplicitWidth = 540 + end + end + end + end + end + object pnlAgrupaciones: TTBXDockablePanel + Left = 0 + Top = 568 + 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 = 554 + Height = 26 + Margins.Left = 10 + Align = alTop + TabOrder = 0 + object TBXToolbar1: TTBXToolbar + Left = 10 + Top = 0 + Width = 544 + 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.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 39231.869607013890000000 + StyleManager = 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 + 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 = cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + Left = 264 + Top = 128 + end + object ActionList1: TActionList + Left = 400 + Top = 360 + object actQuitarAgrupaciones: TAction + Caption = 'Quitar agrupaciones' + OnExecute = actQuitarAgrupacionesExecute + OnUpdate = actQuitarAgrupacionesUpdate + end + end + object PngImageList10: TPngImageList + PngImages = <> + Left = 368 + Top = 360 + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 368 + Top = 160 + 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 dxPrintStyleManager1: TdxPrintStyleManager + CurrentStyle = dxPrintStyleManager1Style1 + Version = 0 + Left = 336 + Top = 160 + 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.LeftTitle.Strings = ( + 'LUIS LEON REPRESENTACIONES S.L.') + 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/GUIBase/uViewGrid.pas b/Source/Base/GUIBase/uViewGrid.pas new file mode 100644 index 00000000..43e7f459 --- /dev/null +++ b/Source/Base/GUIBase/uViewGrid.pas @@ -0,0 +1,221 @@ +{*******************************************************} +{ } +{ 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, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, + cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList, + TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg; + +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; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + cxStyleSinOrden: TcxStyle; + cxStyleConOrden: TcxStyle; + cxViewGridPopupMenu: TcxGridPopupMenu; + dxComponentPrinterLink: TdxGridReportLink; + cxStyleFiltered: TcxStyle; + cxStyleFilteredConOrden: TcxStyle; + frViewFiltroBase1: TfrViewFiltroBase; + ActionList1: TActionList; + PngImageList10: TPngImageList; + actQuitarAgrupaciones: TAction; + pnlAgrupaciones: TTBXDockablePanel; + TBXAlignmentPanel1: TTBXAlignmentPanel; + TBXToolbar1: TTBXToolbar; + TBXItem1: TTBXItem; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + dxPrintStyleManager1: TdxPrintStyleManager; + dxPrintStyleManager1Style1: TdxPSPrintStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewDblClick(Sender: TObject); + procedure actQuitarAgrupacionesExecute(Sender: TObject); + procedure actQuitarAgrupacionesUpdate(Sender: TObject); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + procedure SetPopupMenu(const Value: TPopupMenu); override; + procedure FilterChanged(Sender : TObject); override; + procedure OnChangeValoresFiltro(Sender: TObject); + procedure SetViewFiltros(const Value: IViewFiltroBase); override; + function AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; + public + function esSeleccionCeldaDatos: Boolean; override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleBase, uDBSelectionListUtils; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +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; + RefrescarFiltro; + cxGridView.DataController.Filter.EndUpdate; +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: Integer; +begin + inherited; + for i := 0 to cxGridView.ColumnCount - 1 do + begin + Columna := (cxGridView as TcxGridDBTableView).Columns[i]; + if not (Columna.GroupIndex < 0) then + begin + Columna.GroupIndex := -1; + Columna.Visible := True; + 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.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; + +destructor TfrViewGrid.Destroy; +begin + ViewFiltros := Nil; + inherited; +end; + +function TfrViewGrid.esSeleccionCeldaDatos: Boolean; +begin + Result := not (cxGridView.Controller.FocusedRecord is TcxGridGroupRow); +end; + +procedure TfrViewGrid.FilterChanged(Sender: TObject); +begin + inherited; + if Filtered then + _FocusedView.Styles.Content := cxStyleFiltered + else + _FocusedView.Styles.Content := nil; +end; + +end. + diff --git a/Source/Base/GUIBase/uViewGrid2Niveles.dfm b/Source/Base/GUIBase/uViewGrid2Niveles.dfm new file mode 100644 index 00000000..abc45386 --- /dev/null +++ b/Source/Base/GUIBase/uViewGrid2Niveles.dfm @@ -0,0 +1,136 @@ +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 + 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/Base/GUIBase/uViewGrid2Niveles.pas b/Source/Base/GUIBase/uViewGrid2Niveles.pas new file mode 100644 index 00000000..030b5664 --- /dev/null +++ b/Source/Base/GUIBase/uViewGrid2Niveles.pas @@ -0,0 +1,211 @@ +{*******************************************************} +{ } +{ Administración 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, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, + cxGridPopupMenu; + +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 + uDataModuleBase, 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/Base/GUIBase/uViewGridBase.dfm b/Source/Base/GUIBase/uViewGridBase.dfm new file mode 100644 index 00000000..56958797 --- /dev/null +++ b/Source/Base/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/Base/GUIBase/uViewGridBase.pas b/Source/Base/GUIBase/uViewGridBase.pas new file mode 100644 index 00000000..dd9d6d67 --- /dev/null +++ b/Source/Base/GUIBase/uViewGridBase.pas @@ -0,0 +1,401 @@ +{*******************************************************} +{ } +{ Administración 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, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uViewFiltroBase; + +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; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + + 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; + end; + + + TfrViewGridBase = class(TfrViewBase, IViewGridBase) + dsDataSource: TDADataSource; + private + FViewFiltros: IViewFiltroBase; + FFilter: string; + FOnFilterChanged : TNotifyEvent; + FGridStatus : TcxGridStatus; + 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; + + 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; + + 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 GotoFirst; + procedure GotoLast; + + procedure StoreToRegistry (const Path : String); virtual; + procedure RestoreFromRegistry (const Path : String); virtual; + + 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; + end; + +procedure Register; + +implementation + +uses + CCReg, uDataModuleBase, uDBSelectionListUtils; + +{$R *.dfm} + +procedure Register; +begin + RegisterCustomContainer(TfrViewGridBase); +end; + +{ TfrViewGrid } + +procedure TfrViewGridBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewGridBase.AnadirOtrosFiltros; +begin +// +end; + +procedure TfrViewGridBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewGridBase.Create(AOwner: TComponent); +begin + inherited; + FFilter := ''; + FOnFilterChanged := FilterChanged; + FPopupMenu := nil; + FOnDblClick := nil; + FGridStatus := NIL; +end; + +procedure TfrViewGridBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +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.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; + +function TfrViewGridBase.IsEmpty: Boolean; +begin + Result := (_FocusedView.ViewData.RowCount < 1); +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.RestoreFromRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, [], Self.Name); +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 +// if FFilter <> Value then +// 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; +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 parámetros +{ 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.StoreToRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, [], Self.Name); +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/Base/GUIBase/uViewIncidencias.dfm b/Source/Base/GUIBase/uViewIncidencias.dfm new file mode 100644 index 00000000..451339a3 --- /dev/null +++ b/Source/Base/GUIBase/uViewIncidencias.dfm @@ -0,0 +1,54 @@ +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 + 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 + TabOrder = 0 + Height = 305 + Width = 420 + end + end + object DADataSource: TDADataSource + Left = 560 + Top = 8 + end +end diff --git a/Source/Base/GUIBase/uViewIncidencias.pas b/Source/Base/GUIBase/uViewIncidencias.pas new file mode 100644 index 00000000..b017d385 --- /dev/null +++ b/Source/Base/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; + +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/Base/GUIBase/uViewObservaciones.dfm b/Source/Base/GUIBase/uViewObservaciones.dfm new file mode 100644 index 00000000..f0b06091 --- /dev/null +++ b/Source/Base/GUIBase/uViewObservaciones.dfm @@ -0,0 +1,46 @@ +inherited frViewObservaciones: TfrViewObservaciones + Width = 300 + DesignSize = ( + 300 + 226) + 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/Base/GUIBase/uViewObservaciones.pas b/Source/Base/GUIBase/uViewObservaciones.pas new file mode 100644 index 00000000..2430ebac --- /dev/null +++ b/Source/Base/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; + +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/Base/GUIBase/uViewPreview.dfm b/Source/Base/GUIBase/uViewPreview.dfm new file mode 100644 index 00000000..52e3be36 --- /dev/null +++ b/Source/Base/GUIBase/uViewPreview.dfm @@ -0,0 +1,10 @@ +inherited frViewPreview: TfrViewPreview + object frxPreview: TfrxPreview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + OutlineVisible = False + end +end diff --git a/Source/Base/GUIBase/uViewPreview.pas b/Source/Base/GUIBase/uViewPreview.pas new file mode 100644 index 00000000..c16f3764 --- /dev/null +++ b/Source/Base/GUIBase/uViewPreview.pas @@ -0,0 +1,43 @@ +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 + property Preview : TfrxPreview read GetPreview; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPreview } + +function TfrViewPreview.GetPreview: TfrxPreview; +begin + Result := frxPreview; +end; + +initialization + RegisterClass(TfrViewPreview); + +finalization + UnRegisterClass(TfrViewPreview); + +end. + + diff --git a/Source/Base/GUIBase/uViewTotales.dfm b/Source/Base/GUIBase/uViewTotales.dfm new file mode 100644 index 00000000..d3e8b6e6 --- /dev/null +++ b/Source/Base/GUIBase/uViewTotales.dfm @@ -0,0 +1,619 @@ +inherited frViewTotales: TfrViewTotales + Width = 451 + Height = 350 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 350 + 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 Bevel1: TBevel + Left = 104 + Top = 109 + Width = 73 + Height = 9 + Shape = bsBottomLine + end + object Bevel3: TBevel + Left = 278 + Top = 28 + Width = 3 + Height = 122 + Shape = bsRightLine + end + object Bevel4: TBevel + Left = 390 + Top = 109 + Width = 192 + Height = 9 + Shape = bsBottomLine + end + object ImporteDto: TcxDBCurrencyEdit + Left = 175 + Top = 129 + AutoSize = False + DataBinding.DataField = 'IMPORTE_DESCUENTO' + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Height = 21 + Width = 93 + end + object ImporteIVA: TcxDBCurrencyEdit + Left = 461 + Top = 55 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Height = 21 + Width = 137 + end + object ImporteTotal: TcxDBCurrencyEdit + Left = 391 + Top = 129 + 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.TextColor = clActiveCaption + Style.TextStyle = [fsBold] + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Height = 21 + Width = 137 + end + object edtDescuento: TcxDBSpinEdit + Left = 104 + Top = 129 + 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.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Height = 21 + Width = 65 + end + object edtIVA: TcxDBSpinEdit + Left = 390 + Top = 55 + 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.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Height = 21 + Width = 65 + end + object ImporteBase: TcxDBCurrencyEdit + Left = 390 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Height = 21 + Width = 92 + end + object edtRE: TcxDBSpinEdit + Left = 390 + Top = 82 + 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.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Height = 21 + Width = 65 + end + object ImporteRE: TcxDBCurrencyEdit + Left = 461 + Top = 82 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Height = 21 + Width = 56 + end + object eImporteNeto: TcxDBCurrencyEdit + Left = 104 + Top = 28 + AutoSize = False + DataBinding.DataField = 'IMPORTE_NETO' + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 21 + Width = 147 + end + object ePorte: TcxDBCurrencyEdit + Left = 104 + Top = 156 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Height = 21 + Width = 147 + end + object eIVA: TcxDBLookupComboBox + Left = 104 + Top = 55 + DataBinding.DataField = 'ID_TIPO_IVA' + DataBinding.DataSource = DADataSource + Properties.GridMode = True + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsTiposIVA + 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 = 81 + end + object bTiposIVA: TButton + Left = 130 + Top = 55 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 2 + end + object cbRecargoEquivalencia: TcxDBCheckBox + Left = 104 + Top = 82 + Caption = 'Aplicar recargo de equivalencia' + DataBinding.DataField = 'RECARGO_EQUIVALENCIA' + DataBinding.DataSource = DADataSource + 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 = 3 + Width = 219 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + 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 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 dxLayoutControl1Item10: TdxLayoutItem + Caption = ' ' + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group7: 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 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 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 dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Control = Bevel4 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe total:' + LookAndFeel = LookAndFeelIMPORTE_TOTAL + Control = ImporteTotal + ControlOptions.ShowBorder = False + 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/Base/GUIBase/uViewTotales.pas b/Source/Base/GUIBase/uViewTotales.pas new file mode 100644 index 00000000..4b92be56 --- /dev/null +++ b/Source/Base/GUIBase/uViewTotales.pas @@ -0,0 +1,71 @@ +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; + +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; + Bevel1: TBevel; + dxLayoutControl1Item10: TdxLayoutItem; + 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; + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Base/Jv3rdD10R.drc b/Source/Base/Jv3rdD10R.drc new file mode 100644 index 00000000..09081cc2 --- /dev/null +++ b/Source/Base/Jv3rdD10R.drc @@ -0,0 +1,21 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */ + "\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */ + "\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */ + "\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */ + "\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */ + "\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */ + "\x53", "\x00", "\x00", "\x00" /* 0030: S... */ +END + diff --git a/Source/Base/Usuarios/Usuarios.bdsproj b/Source/Base/Usuarios/Usuarios.bdsproj new file mode 100644 index 00000000..6a6eb5fa --- /dev/null +++ b/Source/Base/Usuarios/Usuarios.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Usuarios.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 + Gestión de usuarios + + + + .\ + ..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\Lib;..\..\Modulos\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Base/Usuarios/Usuarios.dpk b/Source/Base/Usuarios/Usuarios.dpk new file mode 100644 index 00000000..f60f5fa0 --- /dev/null +++ b/Source/Base/Usuarios/Usuarios.dpk @@ -0,0 +1,43 @@ +package Usuarios; + +{$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} +{$DESCRIPTION 'Gestión de usuarios'} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + DataAbstract_D10, + Base, + Empresas_model, + Empresas_controller; + +contains + uDataModuleUsuarios in 'uDataModuleUsuarios.pas' {dmUsuarios: TDAClientDataModule}, + uUsuarios in 'uUsuarios.pas' {fUsuarios}, + uUsuario in 'uUsuario.pas' {fUsuario}, + uLoginForm in 'uLoginForm.pas' {fLoginForm}, + uCambiarPassword in 'uCambiarPassword.pas' {fCambiarPassword}; + +end. diff --git a/Source/Base/Usuarios/Usuarios.drc b/Source/Base/Usuarios/Usuarios.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Base/Usuarios/Usuarios.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Base/Usuarios/Usuarios.rc b/Source/Base/Usuarios/Usuarios.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Base/Usuarios/Usuarios.res b/Source/Base/Usuarios/Usuarios.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Base/Usuarios/Usuarios.res differ diff --git a/Source/Base/Usuarios/uCambiarPassword.dfm b/Source/Base/Usuarios/uCambiarPassword.dfm new file mode 100644 index 00000000..91698274 --- /dev/null +++ b/Source/Base/Usuarios/uCambiarPassword.dfm @@ -0,0 +1,94 @@ +object fCambiarPassword: TfCambiarPassword + Left = 460 + Top = 492 + Width = 361 + Height = 299 + Caption = 'Cambiar la contrase'#241'a' + 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 bAceptar: TButton + Left = 136 + Top = 230 + Width = 120 + Height = 25 + Caption = '&Cambiar la contrase'#241'a' + Default = True + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 269 + Top = 230 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object PageControl1: TPageControl + Left = 2 + Top = 2 + Width = 349 + Height = 217 + ActivePage = pagContrasena + TabOrder = 2 + object pagContrasena: TTabSheet + Caption = 'Cambiar la contrase'#241'a' + object Label4: TLabel + Left = 16 + Top = 19 + Width = 167 + Height = 13 + Caption = 'Escriba la nueva contrase'#241'a:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label1: TLabel + Left = 16 + Top = 72 + Width = 257 + Height = 13 + Caption = 'Repita la nueva contrase'#241'a para confirmarla:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object edtPassword2: TEdit + Left = 16 + Top = 88 + Width = 295 + Height = 21 + CharCase = ecLowerCase + PasswordChar = '*' + TabOrder = 0 + end + object edtPassword: TEdit + Left = 16 + Top = 39 + Width = 295 + Height = 21 + CharCase = ecLowerCase + PasswordChar = '*' + TabOrder = 1 + end + end + end +end diff --git a/Source/Base/Usuarios/uCambiarPassword.pas b/Source/Base/Usuarios/uCambiarPassword.pas new file mode 100644 index 00000000..03a158bf --- /dev/null +++ b/Source/Base/Usuarios/uCambiarPassword.pas @@ -0,0 +1,41 @@ +unit uCambiarPassword; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls; + +type + TfCambiarPassword = class(TForm) + bAceptar: TButton; + bCancelar: TButton; + Label4: TLabel; + edtPassword: TEdit; + Label1: TLabel; + edtPassword2: TEdit; + PageControl1: TPageControl; + pagContrasena: TTabSheet; + procedure bAceptarClick(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fCambiarPassword: TfCambiarPassword; + +implementation + +{$R *.dfm} + +procedure TfCambiarPassword.bAceptarClick(Sender: TObject); +begin + if edtPassword2.Text <> edtPassword.Text then + raise Exception.Create('Por favor, introduzca la MISMA contraseña en los dos campos') + else + ModalResult := mrOK; +end; + +end. diff --git a/Source/Base/Usuarios/uDataModuleUsuarios.dfm b/Source/Base/Usuarios/uDataModuleUsuarios.dfm new file mode 100644 index 00000000..3b723c44 --- /dev/null +++ b/Source/Base/Usuarios/uDataModuleUsuarios.dfm @@ -0,0 +1,24 @@ +object dmUsuarios: TdmUsuarios + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = ROLoginService + Adapter = DABINAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 172 + Width = 355 + object ROLoginService: TRORemoteService + ServiceName = 'srvLogin' + Left = 48 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 104 + end +end diff --git a/Source/Base/Usuarios/uDataModuleUsuarios.pas b/Source/Base/Usuarios/uDataModuleUsuarios.pas new file mode 100644 index 00000000..0c01c4e2 --- /dev/null +++ b/Source/Base/Usuarios/uDataModuleUsuarios.pas @@ -0,0 +1,209 @@ +unit uDataModuleUsuarios; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + FactuGES_Intf, uIntegerListUtils, uBizEmpresas; + +const + PERFIL_ADMINISTRADORES = 'Administradores'; + +type + TdmUsuarios = class(TDAClientDataModule) + ROLoginService: TRORemoteService; + DABINAdapter: TDABINAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DAClientDataModuleDestroy(Sender: TObject); + private + FUsuario : String; + FPassword : String; // Lo guardo para poder hacer una reconexión + + FLoginInfo: TRdxLoginInfo; + FEmpresaActual: IBizEmpresa; + function CambiarPassword (const APassword : String) : boolean; overload; + function GetEsAdministrador: Boolean; + + function GetEmpresas: TIntegerList; + + procedure SetEmpresaActual(const Value: IBizEmpresa); + function GetIDEmpresaActual: Integer; + procedure SetIDEmpresaActual(const Value: Integer); + public + function Login: Boolean; overload; + function Login(Usuario: String; Password: String): Boolean; overload; + procedure Logout; + procedure CambiarPassword; overload; + property EsAdministrador : Boolean read GetEsAdministrador; + property IDEmpresaActual : Integer read GetIDEmpresaActual write SetIDEmpresaActual; + property EmpresaActual : IBizEmpresa read FEmpresaActual write SetEmpresaActual; + property Empresas : TIntegerList read GetEmpresas; + property LoginInfo: TRdxLoginInfo read FLoginInfo; + end; + +var + dmUsuarios: TdmUsuarios; + +implementation + +{$R *.DFM} + +uses + Forms, Controls, uDataTableUtils, uDataModuleConexion, uLoginForm, + uCambiarPassword, Dialogs, Windows, uEmpresasController; + +{ TDAClientDataModule1 } + +procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject); +begin + ROLoginService.Channel := dmConexion.Channel; + ROLoginService.Message := dmConexion.Message; + FEmpresaActual := nil; + FUsuario := ''; + FPassword := ''; + FLoginInfo := NIL; +end; + +function TdmUsuarios.Login: Boolean; +begin + // Intento hacer login si el usuario ya lo había hecho antes + if (Length(FUsuario) > 0) then + if Login(FUsuario, FPassword) then + begin + Result := True; + Exit; + end; + + // Si no funcionar el login anterior o es la primera vez, + // saco la pantalla de login + with TfLoginForm.Create(NIL) do + try + if Assigned(FLoginInfo) then + edtUser.Text := FLoginInfo.Usuario; + Result := (ShowModal = mrOK) + finally + Free; + end; +end; + +function TdmUsuarios.Login(Usuario: String; Password: String): Boolean; +begin + // Libero la información del login anterior (sesión, etc) + if Assigned(FLoginInfo) then + FreeANDNil(FLoginInfo); + + Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo); + + if Result then + begin + // Lo guardo para poder reconectarme + FUsuario := Usuario; + FPassword := Password; + end; +end; + +procedure TdmUsuarios.Logout; +begin + (ROLoginService as IsrvLogin).Logout; + if Assigned(FLoginInfo) then + FreeANDNil(FLoginInfo); + FUsuario := ''; + FPassword := ''; +end; + +procedure TdmUsuarios.SetEmpresaActual(const Value: IBizEmpresa); +begin + FEmpresaActual := Value; + FEmpresaActual.DataTable.Active := True; +end; + +procedure TdmUsuarios.SetIDEmpresaActual(const Value: Integer); +var + AEmpresasController : IEmpresasController; + AEmpresa : IBizEmpresa; +begin + AEmpresasController := TEmpresasController.Create; + AEmpresa := AEmpresasController.Buscar(Value); + AEmpresa.DataTable.Active := True; + + if not AEmpresa.IsEmpty then + begin + FEmpresaActual := AEmpresa; + FEmpresaActual.DataTable.Active := True; + end + else + FEmpresaActual := NIL; +end; + +procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject); +begin + if Assigned(FLoginInfo) then + FreeANDNil(FLoginInfo); +end; + +function TdmUsuarios.GetEmpresas: TIntegerList; +var + i : integer; +begin + Result := TIntegerList.Create; + + if not Assigned(FLoginInfo) then + raise Exception.Create('Usuario no validado en el sistema (login)'); + + for i := 0 to FLoginInfo.Empresas.Count - 1 do + Result.Add(FLoginInfo.Empresas.Items[i]); +end; + +function TdmUsuarios.GetEsAdministrador: Boolean; +var + I: Integer; +begin + Result := False; + + if not Assigned(FLoginInfo) then + raise Exception.Create('Usuario no validado en el sistema (login)'); + + for I := 0 to FLoginInfo.Perfiles.Count - 1 do + if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then + begin + Result := True; + Break; + end; +end; + +function TdmUsuarios.GetIDEmpresaActual: Integer; +begin + if not Assigned(FEmpresaActual) then + Result := ID_NULO + else + Result := FEmpresaActual.ID; +end; + +procedure TdmUsuarios.CambiarPassword; +begin + with TfCambiarPassword.Create(NIL) do + try + if ShowModal = mrOk then + if CambiarPassword(edtPassword.Text) then + Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK); + finally + Free; + end; +end; + +function TdmUsuarios.CambiarPassword(const APassword: String): boolean; +begin +{ if not (ROLoginService as IsrvLogin).SetUserPassword(LoginInfo.UserID, APassword) then + raise Exception.Create('Error en el servidor. No se ha podido cambiar la contraseña');} + Result := True; +end; + +initialization + dmUsuarios := TdmUsuarios.Create(nil); + +finalization + FreeAndNil(dmUsuarios); + +end. diff --git a/Source/Base/Usuarios/uLoginForm.dfm b/Source/Base/Usuarios/uLoginForm.dfm new file mode 100644 index 00000000..bfa1641a --- /dev/null +++ b/Source/Base/Usuarios/uLoginForm.dfm @@ -0,0 +1,1099 @@ +object fLoginForm: TfLoginForm + 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 + 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 + 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/Base/Usuarios/uLoginForm.pas b/Source/Base/Usuarios/uLoginForm.pas new file mode 100644 index 00000000..a3814747 --- /dev/null +++ b/Source/Base/Usuarios/uLoginForm.pas @@ -0,0 +1,101 @@ +unit uLoginForm; + +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; + +type + TfLoginForm = class(TForm) + 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 FormCreate(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + private + FIntentos: Integer; + end; + +var + fLoginForm: TfLoginForm; + +implementation + +uses + uDataModuleUsuarios, uDataModuleConexion, uDataModuleBase; + +{$R *.dfm} + +{ +********************************* TfLoginForm ********************************** +} +procedure TfLoginForm.bAceptarClick(Sender: TObject); +var + bOk : Boolean; +begin + ShowHourglassCursor; + try + bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text); + finally + HideHourglassCursor; + end; + + if bOk then + ModalResult := mrOK + else begin + Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK); + Dec(FIntentos); + if (FIntentos <= 0) then + ModalResult := mrCancel; + end; +end; + +procedure TfLoginForm.FormCreate(Sender: TObject); +begin + FIntentos := 3; +end; + +procedure TfLoginForm.ToolButton4Click(Sender: TObject); +begin + Timer1.Enabled := False; + dmConexion.ConfigurarConexion; + Timer1.Enabled := True; +end; + +procedure TfLoginForm.FormShow(Sender: TObject); +begin + Self.Caption := Self.Caption + ' - ' + dmBase.DarVersion; + JvFormStorage1.RestoreFormPlacement; + // Hacer login automática si hay usuario/password y no hay más de una base + // de datos como opción para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +procedure TfLoginForm.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Source/Base/Usuarios/uUsuario.dfm b/Source/Base/Usuarios/uUsuario.dfm new file mode 100644 index 00000000..93fcc6e1 --- /dev/null +++ b/Source/Base/Usuarios/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/Base/Usuarios/uUsuario.pas b/Source/Base/Usuarios/uUsuario.pas new file mode 100644 index 00000000..90e722c2 --- /dev/null +++ b/Source/Base/Usuarios/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/Base/Usuarios/uUsuarios.dfm b/Source/Base/Usuarios/uUsuarios.dfm new file mode 100644 index 00000000..eb18801a --- /dev/null +++ b/Source/Base/Usuarios/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 = clWhite + 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/Base/Usuarios/uUsuarios.pas b/Source/Base/Usuarios/uUsuarios.pas new file mode 100644 index 00000000..3e6d9d5e --- /dev/null +++ b/Source/Base/Usuarios/uUsuarios.pas @@ -0,0 +1,89 @@ +unit uUsuarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls, + DBCtrls, uDataModuleBase, JvExControls, JvComponent, JvNavigationPane, + Grids, DBGrids, ActnList; + +type + TfUsuarios = class(TForm) + DADataSource: TDADataSource; + Grid: TDBGrid; + JvNavPanelHeader1: TJvNavPanelHeader; + Button1: TButton; + Button2: TButton; + Button3: TButton; + Button4: TButton; + Button5: TButton; + ActionList: TActionList; + actCerrar: TAction; + actNuevo: TAction; + actCambiarPassword: TAction; + actModificar: TAction; + actEliminar: TAction; + procedure actCerrarExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actCambiarPasswordUpdate(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +procedure AdministrarUsuarios; + +implementation + +{$R *.dfm} + + +procedure AdministrarUsuarios; +var + fUsuarios: TfUsuarios; +begin + fUsuarios := TfUsuarios.Create(NIL); + try + fUsuarios.ShowModal; + finally + fUsuarios.Free; + end; +end; + +procedure TfUsuarios.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfUsuarios.FormCreate(Sender: TObject); +begin +{ DADataSource.DataTable := dmUsuarios.tbl_Usuarios; + DADataSource.DataTable.Active := True;} +end; + +procedure TfUsuarios.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actNuevoUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(DADataSource.DataTable); +end; + +end. diff --git a/Source/Base/Utiles/MD5.pas b/Source/Base/Utiles/MD5.pas new file mode 100644 index 00000000..585edb50 --- /dev/null +++ b/Source/Base/Utiles/MD5.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 md5; + +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/uDBSelectionListUtils.pas b/Source/Base/Utiles/uDBSelectionListUtils.pas new file mode 100644 index 00000000..c1fed371 --- /dev/null +++ b/Source/Base/Utiles/uDBSelectionListUtils.pas @@ -0,0 +1,196 @@ +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.FieldByName('ID').AsInteger; +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('ID', 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.pas b/Source/Base/Utiles/uDataTableUtils.pas new file mode 100644 index 00000000..fdb3b108 --- /dev/null +++ b/Source/Base/Utiles/uDataTableUtils.pas @@ -0,0 +1,484 @@ +unit uDataTableUtils; + +interface + +uses + uDACDSDataTable, uDADataTable, uDAInterfaces; + +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 CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; + RemoteUpdate: Boolean = True); + +procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; + Const WithKey: Boolean = False); +procedure DuplicarRegistros(ASource : TDADataTable; ATarget : TDADataTable; + AModo : TModoDuplicarRegistros; APermitirRepetidos: Boolean = True; + Const WithDeltas: Boolean = True; Const WithKey: Boolean = False); + +procedure CopyDataTable(ASource : TDADataTable; ATarget : TDADataTable; + const OnlySelectedRows : 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; + +implementation + +uses + Classes, DB, uDAClasses, SysUtils, uDABINAdapter, uROTypes, cxControls, + Dialogs, Variants, uDBSelectionListUtils, uROClasses; + +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; + +{procedure EliminarNoSeleccionados(const ASource : IDADataset; + var ATarget : TDADataTable); +var + AObj : ISelectedRowList; + i : Integer; +begin + if not Supports(ASource, ISelectedRowList, aObj) then + Exit; + +// ATarget.DisableControls; +// ATarget.DisableEventHandlers; + ShowHourglassCursor; + try + ATarget.Open; + ATarget.Last; + while ATarget.RecordCount > AObj.SelectedRows.Count do + begin + if AObj.SelectedRows.IndexOf(ATarget.RecIDValue) < 0 then + ATarget.Delete + else + ATarget.Prior; + end; + finally +// ATarget.EnableControls; +// ATarget.EnableControls; + HideHourglassCursor; + 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 + 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 + 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; + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + RemoteService := ASource.GetRemoteService; + Adapter := ASource.GetAdapter; + + //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 + with SchemaCall do + begin + MethodName := ASource.SchemaCall.MethodName; + for i := 0 to ASource.SchemaCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.SchemaCall.Params[i].Name; + ParamType := ASource.SchemaCall.Params[i].ParamType; + DataType := ASource.SchemaCall.Params[i].DataType; + Value := ASource.SchemaCall.Params[i].Value; + UserClassName := ASource.SchemaCall.Params[i].UserClassName; + end; + end; + end; + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; + end; + + with DataUpdateCall do + begin + MethodName := ASource.DataUpdateCall.MethodName; + for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.DataUpdateCall.Params[i].Name; + ParamType := ASource.DataUpdateCall.Params[i].ParamType; + DataType := ASource.DataUpdateCall.Params[i].DataType; + Value := ASource.DataUpdateCall.Params[i].Value; + UserClassName := ASource.DataUpdateCall.Params[i].UserClassName; + end; + end; + end; + + with ScriptCall do + begin + MethodName := ASource.ScriptCall.MethodName; + for i := 0 to ASource.ScriptCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.ScriptCall.Params[i].Name; + ParamType := ASource.ScriptCall.Params[i].ParamType; + DataType := ASource.ScriptCall.Params[i].DataType; + Value := ASource.ScriptCall.Params[i].Value; + UserClassName := ASource.ScriptCall.Params[i].UserClassName; + end; + end; + end; + + with DataRequestCall do + begin + MethodName := ASource.DataRequestCall.MethodName; + for i := 0 to ASource.DataRequestCall.Params.Count - 1 do + begin + with Params.Add do begin + begin + Name := ASource.DataRequestCall.Params[i].Name; + ParamType := ASource.DataRequestCall.Params[i].ParamType; + DataType := ASource.DataRequestCall.Params[i].DataType; + Value := ASource.DataRequestCall.Params[i].Value; + UserClassName := ASource.DataRequestCall.Params[i].UserClassName; + end; + end; + end; + 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 + if aDelta.LoggedFieldTypes[x] <> datBlob then + begin + try + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + except + // Capturar cualquier tipo de excepción de conversión de tipos + on E: EVariantTypeCastError do + OldNewAreDifferent := True; + end; + end; + + 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 CopyDataTable(ASource : TDADataTable; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); +var + DABin: Binary; + DAAdapter : TDABINAdapter; + AFilter : String; + AFiltered : Boolean; + AObj : ISeleccionable; + i : Integer; +begin + AFilter := ''; + AFiltered := False; + + if OnlySelectedRows then + begin + if not Supports(ASource, ISeleccionable, aObj) then + raise Exception.Create('El origen de datos no soporta la interfaz ISeleccionable (CopyDataTable)'); + + if ASource.Filtered then + begin + AFiltered := True; + AFilter := ASource.Filter; + ASource.Filtered := False; + end; + + ASource.Filter := ''; + if ASource.Active then + ASource.Close; + + for i := 0 to AObj.SelectedRecords.Count - 1 do + begin + if (i > 0) then + ASource.Filter := ASource.Filter + ' or '; + ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; + end; + + ASource.Filtered := True; + end; + + DABin := Binary.Create; + DAAdapter := TDABINAdapter.Create(nil); + try + ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName + ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor + + if not ASource.Active then + ASource.Open; + ASource.First; + + DAAdapter.Initialize(DABin, aiWrite); + DAAdapter.WriteDataset(DABin, ASource, [woRows]); + DAAdapter.Initialize(DABin, aiReadFromBeginning); + DAAdapter.ReadDataset(DABin, ATarget); + DAAdapter.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; + + finally + FreeAndNil(DABin); + FreeAndNil(DAAdapter); + end; +end; + +procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; Const WithKey: Boolean = False); +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; + + // ¿ATarget es una tabla detalle? + if Assigned(ATarget.MasterSource) then + begin + case ATarget.MasterMappingMode of + //mmDataRequest: //Sin hacer; + mmParams: 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; + + ATarget.Insert; + { 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 relación maestro-detalle en el + // caso de que la tabla destino sea una tabla detalle. + if not WithKey then + begin + //Si no es campo clave + if not (ATargetField.InPrimaryKey) and + //Si no es autoinc (podria desaparecer pero no lo quitamos por si acaso + (ATargetField.DataType <> datAutoInc) and + //Si no hay campos foreing key o los hay pero el campo a copiar no es uno de ellos + (not Assigned(ADetailFields) or not ADetailFields.Find(ATargetField.Name, j)) then + //Copiamos el campo + ATargetField.Value := ASourceField.Value; + end + else + 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 WithKey: 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 inserción, y luego actue como un update + if not WithDeltas then + DesconectarTabla(ATarget); + + if AModo = mdrActual then + DuplicarRegistro(ASource, ATarget, WithKey) //ATarget.CloneSelectedRecord(ASource, True) + else begin + ASource.First; + while not ASource.EOF do + begin + if APermitirRepetidos then + DuplicarRegistro(ASource, ATarget, WithKey) + else + begin + ATarget.First; + if not ATarget.Locate('ID', ASource.FieldByName('ID').AsVariant, []) then + DuplicarRegistro(ASource, ATarget, WithKey); + end; + + ASource.Next; + end; + end; + finally + //Para que no se generen deltas de inserción, 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 relación + 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; + +end. diff --git a/Source/Base/Utiles/uDateUtils.pas b/Source/Base/Utiles/uDateUtils.pas new file mode 100644 index 00000000..bf261c97 --- /dev/null +++ b/Source/Base/Utiles/uDateUtils.pas @@ -0,0 +1,21 @@ +unit uDateUtils; + +interface + +uses + SysUtils, Classes; + + +function EsFechaVacia(AFecha : TDateTime): Boolean; + +implementation + +const + FECHA_NULA = -700000; + +function EsFechaVacia(AFecha : TDateTime): Boolean; +begin + Result := (AFecha = FECHA_NULA) or (AFecha = 0); +end; + +end. diff --git a/Source/Base/Utiles/uDialogUtils.pas b/Source/Base/Utiles/uDialogUtils.pas new file mode 100644 index 00000000..69b982b7 --- /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('Información', 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('¡Atención!', 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 información sobre el error'; + ADialog.Expando.HideText := 'No mostrar información 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/uGridUtils.pas b/Source/Base/Utiles/uGridUtils.pas new file mode 100644 index 00000000..abcffa37 --- /dev/null +++ b/Source/Base/Utiles/uGridUtils.pas @@ -0,0 +1,297 @@ +unit uGridUtils; + +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; + + +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 + 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 + 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; + +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); + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Base/Utiles/uInfoProjectUtils.pas b/Source/Base/Utiles/uInfoProjectUtils.pas new file mode 100644 index 00000000..7a728c51 --- /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 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: 17-05-2005 + Versión actual: 1.0.0 + Fecha versión 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.pas b/Source/Base/Utiles/uIntegerListUtils.pas new file mode 100644 index 00000000..62994ac7 --- /dev/null +++ b/Source/Base/Utiles/uIntegerListUtils.pas @@ -0,0 +1,61 @@ +unit uIntegerListUtils; + +interface + +uses + Classes; + +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; + 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; + +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/uNumUtils.pas b/Source/Base/Utiles/uNumUtils.pas new file mode 100644 index 00000000..8a0ec3e0 --- /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 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: 01-11-2002 + Versión actual: 1.0.0 + Fecha versión 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) + ' CÉNTIMOS'; + + if (Entero > 0) then + Cadena := IntToLetras(Entero) + ' EUROS ' + Cadena; + + Result := UpperCase(Cadena); +end; + +end. diff --git a/Source/Base/Utiles/uPasswordUtils.pas b/Source/Base/Utiles/uPasswordUtils.pas new file mode 100644 index 00000000..9333b53a --- /dev/null +++ b/Source/Base/Utiles/uPasswordUtils.pas @@ -0,0 +1,51 @@ +unit uPasswordUtils; + +interface + +function EncriptarPassword(const password : string): String; +function EncriptarPasswordOSC(const password : string): String; +implementation + +uses + MD5, 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; + +function EncriptarPasswordOSC(const password : string): String; +var + t : TMD5Digest; + salt : String; + pass_encriptada : String; + i : integer; +begin +// for ($i=0; $i<10; $i++) { +// $password .= tep_rand(); +// } +// +// $salt = substr(md5($password), 0, 2); +// +// $password = md5($salt . $plain) . ':' . $salt; + + pass_encriptada := ''; + Randomize; + for I := 0 to 9 do + pass_encriptada := pass_encriptada + FloatToStr(Random(10000000000)); + + t := MD5String(password); + salt := Copy(MD5DigestToStr(t), 0, 2); + + t := MD5String(salt + password); + pass_encriptada := MD5DigestToStr(t); + Result := LowerCase(pass_encriptada) + ':' + salt; +end; + + +end. diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas new file mode 100644 index 00000000..1839cb51 --- /dev/null +++ b/Source/Base/Utiles/uSistemaFunc.pas @@ -0,0 +1,255 @@ +{ +=============================================================================== + Copyright (©) 2002. 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: 01-11-2002 + Versión actual: 1.0.0 + Fecha versión actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uSistemaFunc; + +interface + +{ Funciones del sistema } +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; +function DarRutaTemporal : String; +function DarFicheroTemporal : String; +function DarFicheroJPGTemporal : String; +function DarFicheroBMPTemporal : String; +function DarFicheroTIFFTemporal : String; +function DarFicheroExportar (var Fichero : String) : Boolean; +function DarVersionFichero (Executable : String) : String; +function DarFechaFichero (Executable : String) : String; +procedure CopiarFichero(const Origen, Destino: string); +procedure DoDelTree( TheDir : String); +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); + + +implementation + +uses + SysUtils, Windows, Dialogs, + + Messages, Classes, Graphics, Controls, Forms, + StdCtrls; + +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 DarFicheroBMPTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; +end; + +function DarFicheroJPGTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg'; +end; + +function DarFicheroExportar (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 DarVersionFichero (Executable : String) : String; +var + Size, Size2: DWord; + Pt, Pt2: Pointer; +begin + Size := GetFileVersionInfoSize(PChar (Executable), Size2); + if Size > 0 then + begin + GetMem (Pt, Size); + try + GetFileVersionInfo (PChar (Executable), 0, Size, Pt); + VerQueryValue (Pt, '\', Pt2, Size2); + with TVSFixedFileInfo (Pt2^) do + begin + Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' + + IntToStr (LoWord (dwFileVersionMS)) + '.' + + IntToStr (HiWord (dwFileVersionLS)) + '.' + + IntToStr (LoWord (dwFileVersionLS)); + end; + finally + FreeMem (Pt); + end; + 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; + + +end. + \ No newline at end of file diff --git a/Source/Base/dxComnD10.drc b/Source/Base/dxComnD10.drc new file mode 100644 index 00000000..09081cc2 --- /dev/null +++ b/Source/Base/dxComnD10.drc @@ -0,0 +1,21 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */ + "\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */ + "\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */ + "\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */ + "\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */ + "\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */ + "\x53", "\x00", "\x00", "\x00" /* 0030: S... */ +END + diff --git a/Source/Base/uActualizacion.dfm b/Source/Base/uActualizacion.dfm new file mode 100644 index 00000000..48022f02 --- /dev/null +++ b/Source/Base/uActualizacion.dfm @@ -0,0 +1,273 @@ +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' + LocationHTTP = JvProgramVersionHTTPLocationIndy1 + LocationNetwork = JvProgramVersionNetworkLocation1 + LocationType = pvltHTTP + UserOptions = [uoLocalDirectory, uoAllowedReleaseType, uoLocationType, uoLocationNetwork, uoLocationHTTP] + Left = 176 + Top = 48 + end + object JvProgramVersionNetworkLocation1: TJvProgramVersionNetworkLocation + Left = 208 + Top = 48 + end + object JvProgramVersionHTTPLocationIndy1: TJvProgramVersionHTTPLocationIndy + Left = 240 + Top = 48 + end +end diff --git a/Source/Base/uActualizacion.pas b/Source/Base/uActualizacion.pas new file mode 100644 index 00000000..c43d9e2f --- /dev/null +++ b/Source/Base/uActualizacion.pas @@ -0,0 +1,185 @@ +{ +=============================================================================== + Copyright (©) 2005. 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: 17-05-2005 + Versión actual: 1.0.0 + Fecha versión 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, Buttons, JvBaseDlg, JvBrowseFolder, + ActnList, JvProgramVersionCheck, JvPropertyStore, JvAppIniStorage, + IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, + uInfoProjectUtils, JvComponentBase; + +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; + JvProgramVersionHTTPLocationIndy1: TJvProgramVersionHTTPLocationIndy; + 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 válido'); + 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 configuración desde el registro. + JvFormStorage1.RestoreFormPlacement; + + Result := (rbLan.Checked) or (rbInternet.Checked); +end; + +end. diff --git a/Source/Base/uConfigurarConexion.dfm b/Source/Base/uConfigurarConexion.dfm new file mode 100644 index 00000000..f29ef0c1 --- /dev/null +++ b/Source/Base/uConfigurarConexion.dfm @@ -0,0 +1,112 @@ +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 + OnCreate = FormCreate + 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 + Caption = 'Nombre del servidor:' + end + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + 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 + object HTTPChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'AdminPV' + TargetURL = 'http://localhost:8099/BIN' + Left = 120 + Top = 112 + end + object ROBinMessage: TROBinMessage + Left = 152 + Top = 112 + end + object CoService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage + Channel = HTTPChannel + Left = 184 + Top = 112 + end +end diff --git a/Source/Base/uConfigurarConexion.pas b/Source/Base/uConfigurarConexion.pas new file mode 100644 index 00000000..4417702c --- /dev/null +++ b/Source/Base/uConfigurarConexion.pas @@ -0,0 +1,74 @@ +unit uConfigurarConexion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, + uROServiceComponent, uRORemoteService, uROBinMessage; + +type + TfConfigurarConexion = class(TForm) + bProbar: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + edtServer: TEdit; + edtPort: TEdit; + bAceptar: TButton; + bCancelar: TButton; + HTTPChannel: TROWinInetHTTPChannel; + ROBinMessage: TROBinMessage; + CoService: TRORemoteService; + procedure bProbarClick(Sender: TObject); + procedure FormCreate(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('Conexión válida con el servidor.'); +end; + +procedure TfConfigurarConexion.FormCreate(Sender: TObject); +begin + HTTPChannel.OnFailure := dmConexion.ROChannelFailure; +end; + +end. diff --git a/Source/Base/uDataModuleBase.dfm b/Source/Base/uDataModuleBase.dfm new file mode 100644 index 00000000..fb7eb075 --- /dev/null +++ b/Source/Base/uDataModuleBase.dfm @@ -0,0 +1,1631 @@ +object dmBase: TdmBase + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + OnDestroy = DataModuleDestroy + Height = 352 + Width = 518 + 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 cxIntl: TcxIntl + Connected = True + cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' + PageControl2.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' + PageControl2.NoBaseImages = 'BaseImages no est'#225' asignado' + PageControl2.NoRegisteredStyles = 'No hay estilos registrados' + PageControl2.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' + PageControl2.PainterClassError = 'La clase PCPainter es nula' + PageControl2.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' + PageControl2.StyleNameError = '%s es un nombre de estilo no registrado' + PageControl2.TabCountEqualsZero = 'Tabs.Count = 0' + PageControl2.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' + PageControl2.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' + PageControl2.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' + QuantumGrid5.GridRecursiveLevels = 'No se pueden crear niveles recursivos' + QuantumGrid5.GridDeletingConfirmationCaption = 'Confirmar' + QuantumGrid5.GridDeletingFocusedConfirmationText = #191'Borrar registro?' + QuantumGrid5.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' + QuantumGrid5.GridNoDataInfoText = '' + QuantumGrid5.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' + QuantumGrid5.GridFilterIsEmpty = '' + QuantumGrid5.GridCustomizationFormCaption = 'Personalizaci'#243'n' + QuantumGrid5.GridCustomizationFormColumnsPageCaption = 'Columnas' + QuantumGrid5.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' + QuantumGrid5.GridFilterCustomizeButtonCaption = 'Personalizar...' + QuantumGrid5.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' + QuantumGrid5.GridCustomizationFormBandsPageCaption = 'Bandas' + QuantumGrid5.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' + QuantumGrid5.GridCustomizationFormRowsPageCaption = 'Rows' + QuantumGrid5.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' + QuantumGrid5.GridConverterNotExistGrid = 'cxGrid no existe' + QuantumGrid5.GridConverterNotExistComponent = 'El componente no existe' + QuantumGrid5.ImportErrorCaption = 'Error al importar' + QuantumGrid5.NotExistGridView = 'No existe la vista del grid' + QuantumGrid5.NotExistGridLevel = 'No existe un nivel de grid activo' + QuantumGrid5.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' + QuantumGrid5.EditRepositoryExtLookupComboBoxItem = + 'ExtLookupComboBox|Representa un ultra avanzado control de busque' + + 'da (lookup) usando el QuantumGrid como su control de despliegue' + 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_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?' + Editors5.EditDateConvertError = 'El valor no se puede convertir a fecha' + Editors5.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' + Editors5.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' + Editors5.EditPopupCircularReferencingError = 'Referencia circular no permitida' + Editors5.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' + Editors5.EditTimeConvertError = 'No se puede convertir a valor de tiempo' + Editors5.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' + Editors5.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' + Editors5.EditCheckBoxChecked = 'True' + Editors5.EditCheckBoxUnchecked = 'False' + Editors5.TextTrue = 'True' + Editors5.TextFalse = 'False' + Editors5.BlobButtonOK = '&Aceptar' + Editors5.BlobButtonCancel = '&Cancelar' + Editors5.BlobButtonClose = '&Cerrar' + Editors5.BlobMemo = '(MEMO)' + Editors5.BlobMemoEmpty = '(memo)' + Editors5.BlobPicture = '(IM'#193'GEN)' + Editors5.BlobPictureEmpty = '(im'#225'gen)' + Editors5.MenuItemCaptionCut = 'Cor&tar' + Editors5.MenuItemCaptionCopy = '&Copiar' + Editors5.MenuItemCaptionPaste = '&Pegar' + Editors5.MenuItemCaptionDelete = '&Borrar' + Editors5.MenuItemCaptionLoad = '&Leer...' + Editors5.MenuItemCaptionSave = 'Guardar &Como...' + Editors5.DatePopupClear = 'Limpiar' + Editors5.DatePopupNow = 'Ahora' + Editors5.DatePopupOK = 'Aceptar' + Editors5.DatePopupToday = 'Hoy' + Editors5.DateError = 'Fecha inv'#225'lida' + Editors5.DateToday = 'hoy' + Editors5.DateYesterday = 'ayer' + Editors5.DateTomorrow = 'ma'#241'ana' + Editors5.DateSunday = 'Domingo' + Editors5.DateMonday = 'Lunes' + Editors5.DateTuesday = 'Martes' + Editors5.DateWednesday = 'Mi'#233'rcoles' + Editors5.DateThursday = 'Jueves' + Editors5.DateFriday = 'Viernes' + Editors5.DateSaturday = 'S'#225'bado' + Editors5.DateFirst = 'Primero' + Editors5.DateSecond = 'segundo' + Editors5.DateThird = 'tercero' + Editors5.DateFourth = 'Cuarto' + Editors5.DateFifth = 'Quinto' + Editors5.DateSixth = 'sexto' + Editors5.DateSeventh = 's'#233'ptimo' + Editors5.DateBOM = 'bom' + Editors5.DateEOM = 'eom' + Editors5.DateNow = 'ahora' + Editors5.CalcError = 'Error' + Editors5.HyperLinkPrefix = 'http://' + Editors5.HyperLinkDoubleSlash = '//' + Editors5.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' + Editors5.EditRepositoryButtonItem = + 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + + 'tados' + Editors5.EditRepositoryCalcItem = + 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + + 'culadora desplegable' + Editors5.EditRepositoryCheckBoxItem = + 'CheckBox|Representa un control de caja de marca que permite sele' + + 'ccionar una opci'#243'n' + Editors5.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' + Editors5.EditRepositoryCurrencyItem = + 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + + 'ores monetarios' + Editors5.EditRepositoryDateItem = + 'DateEdit|Representa un control de edici'#243'n con un calendario desp' + + 'legable' + Editors5.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' + Editors5.EditRepositoryImageComboBoxItem = + 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + + 'enes y texto en la ventana desplegable' + Editors5.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' + Editors5.EditRepositoryLookupComboBoxItem = 'LookupComboBox|Representa una caja de b'#250'squeda' + Editors5.EditRepositoryMaskItem = 'MaskEdit|Representa un control de edici'#243'n gen'#233'rico con m'#225'scara' + Editors5.EditRepositoryMemoItem = + 'Memo|Representa un control de edici'#243'n que permite editar datos m' + + 'emo' + Editors5.EditRepositoryMRUItem = + 'MRUEdit|Representa un editor de texto mostrando la lista de los ' + + 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + + 'ble' + Editors5.EditRepositoryPopupItem = + 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + + 'able' + Editors5.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' + Editors5.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' + Editors5.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' + Editors5.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' + Editors5.RegExprLine = 'L'#237'nea' + Editors5.RegExprChar = 'Char' + Editors5.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' + Editors5.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' + Editors5.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' + Editors5.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' + Editors5.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 + Editors5.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 + Editors5.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' + Editors5.RegExprIllegalIntegerValue = 'Valor entero no permitido' + Editors5.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' + Editors5.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' + Editors5.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' + Editors5.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' + Editors5.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 + Editors5.RegExprMissing = 'Falta '#39'%s'#39 + Editors5.RegExprUnnecessary = 'Innecesario '#39'%s'#39 + Editors5.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 + Editors5.RegExprNotCompiled = 'Expresi'#243'n regular no compila' + Editors5.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' + Editors5.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' + Editors5.MaskEditRegExprError = 'Errores en expresiones regulares:' + Editors5.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' + Editors5.MaskEditNoMask = 'Ninguno' + Editors5.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' + Editors5.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' + Editors5.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' + Editors5.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.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 = '(No vac'#237'os)' + Filter.FilterBoolOperatorAnd = 'AND' + Filter.FilterBoolOperatorOr = 'OR' + Filter.FilterBoolOperatorNotAnd = 'NOT AND' + Filter.FilterBoolOperatorNotOr = 'NOT OR' + Filter.FilterRootButtonCaption = 'Filtro' + Filter.FilterAddCondition = 'Agregar &Condici'#243'n' + Filter.FilterAddGroup = 'Agregar &Grupo' + Filter.FilterRemoveRow = '&Remover Fila' + Filter.FilterClearAll = 'Limpiar &Todo' + Filter.FilterFooterAddCondition = '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 = 'Clear Sorting' + 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' + 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 = True + Translate.PageControl2 = False + Translate.QuantumGrid5 = True + Translate.Editors5 = True + Translate.Datacontroller = True + Translate.Filter = True + Translate.GridPopupMenu = True + Translate.GridExport = True + Translate.Navigator = True + Version = '5.0' + Left = 104 + Top = 16 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 224 + Top = 80 + end + object cxIntlPrintSys31: 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 = 224 + Top = 16 + end +end diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas new file mode 100644 index 00000000..6bb5046b --- /dev/null +++ b/Source/Base/uDataModuleBase.pas @@ -0,0 +1,131 @@ +unit uDataModuleBase; + +interface + +uses + Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, + TBXOffice2003Theme, Classes, ImgList, + DataAbstract_Intf, uDADataTable, JvAppStorage, JvAppRegistryStorage, cxintl, + JvComponentBase, cxIntlPrintSys3; + +type + TdmBase = class(TDataModule) + SmallImages: TPngImageList; + StyleManager: TJvNavPaneStyleManager; + TBXSwitcher: TTBXSwitcher; + cxIntl: TcxIntl; + JvAppRegistryStorage: TJvAppRegistryStorage; + cxIntlPrintSys31: TcxIntlPrintSys3; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FOnThemeChange: TNotifyEvent; + procedure InitStyleManager; + procedure OnTBXThemeChange(Sender: TObject); + procedure LeerConfiguracion; + public + procedure SalvarConfiguracion; + function DarVersion : String; + property OnThemeChange: TNotifyEvent read FOnThemeChange write + FOnThemeChange; + end; + +var + dmBase: TdmBase; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows, + JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion; + +{ +*********************************** TdmBase ************************************ +} +procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); +begin + dmConexion := TdmConexion.Create(NIL); + dmConfiguracion := TdmConfiguracion.Create(NIL); + + TBXSwitcher.OnThemeChange := OnTBXThemeChange; + TBXSetTheme('Office2003'); + + LeerConfiguracion; +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 + dmConexion.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL); +end; + +procedure TdmBase.OnTBXThemeChange(Sender: TObject); +begin + InitStyleManager; + + if Assigned(FOnThemeChange) then + FOnThemeChange(Sender); +end; + +procedure TdmBase.SalvarConfiguracion; +begin + JvAppRegistryStorage.BeginUpdate; + try + JvAppRegistryStorage.WriteString('ServerURL', dmConexion.TargetURL); + finally + JvAppRegistryStorage.EndUpdate; + end; +end; + +function TdmBase.DarVersion: String; +var + Obj : TJclFileVersionInfo; +begin + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := 'v' + Obj.FileVersion; + finally + FreeAndNil(Obj); + end; +end; + +procedure TdmBase.DataModuleDestroy(Sender: TObject); +begin + FreeANDNIL(dmConfiguracion); + FreeAndNil(dmConexion); +end; + +initialization + dmBase := TdmBase.Create(NIL); + +finalization + dmBase.Free; + +end. diff --git a/Source/Base/uDataModuleConexion.dfm b/Source/Base/uDataModuleConexion.dfm new file mode 100644 index 00000000..1219caa2 --- /dev/null +++ b/Source/Base/uDataModuleConexion.dfm @@ -0,0 +1,32 @@ +object dmConexion: TdmConexion + OldCreateOrder = False + Height = 264 + Width = 275 + object ROChannel: TROWinInetHTTPChannel + OnFailure = ROChannelFailure + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + KeepConnection = True + Left = 42 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 42 + Top = 88 + end + object DABINAdapter: TDABINAdapter + Left = 136 + Top = 16 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvConfiguracion' + Message = ROMessage + Channel = ROChannel + Left = 136 + Top = 88 + end +end diff --git a/Source/Base/uDataModuleConexion.pas b/Source/Base/uDataModuleConexion.pas new file mode 100644 index 00000000..4f323457 --- /dev/null +++ b/Source/Base/uDataModuleConexion.pas @@ -0,0 +1,151 @@ +unit uDataModuleConexion; + +interface + +uses + SysUtils, Classes, uROServiceComponent, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, uROBinMessage, uROWinInetHttpChannel; + +const + SERVER_URL = 'http://localhost:8099/bin'; + +type + TdmConexion = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + DABINAdapter: TDABINAdapter; + RORemoteService: TRORemoteService; + procedure ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + private + function GetChannel: TROWinInetHTTPChannel; + function GetMessage: TROBinMessage; + function GetTargetURL: String; + procedure SetTargetURL(const Value: String); + public + function HayConexion : Boolean; + function ProbarConexion(const ATargetURL : String): Boolean; + procedure ConfigurarConexion; + property TargetURL : String read GetTargetURL write SetTargetURL; + property Channel: TROWinInetHTTPChannel read GetChannel; + property Message: TROBinMessage read GetMessage; + end; + +var + dmConexion: TdmConexion; + +implementation + +{$R *.dfm} + +uses + Windows, WinInet, cxControls, uConfigurarConexion, Dialogs, Controls, + uDataModuleBase; + +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; + +function TdmConexion.GetChannel: TROWinInetHTTPChannel; +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 + with AHTTPChannel do + begin + Name := 'HTTPChannel'; + if Length(ATargetURL) > 0 then + TargetURL := ATargetURL + else + TargetURL := ROChannel.TargetURL; + end; + +{ with ACoService do + begin + ServiceName := 'srvLogin'; + Message := AROBinMessage; + Channel := AHTTPChannel; + end;} + + try + AHTTPChannel.Connected := True; + AHTTPChannel.Connected := False; + //(ACoService as IsrvLogin).Ping; + Result := True; + except + Result := False; + end; + finally + AHTTPChannel.Connected := False; + FreeAndNil(AHTTPChannel); + FreeAndNil(ACoService); + FreeAndNil(AROBinMessage); + HideHourglassCursor; + end; +end; + +procedure TdmConexion.ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: 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 + Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación + 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/uDataModuleConfiguracion.dfm b/Source/Base/uDataModuleConfiguracion.dfm new file mode 100644 index 00000000..362d229c --- /dev/null +++ b/Source/Base/uDataModuleConfiguracion.dfm @@ -0,0 +1,33 @@ +object dmConfiguracion: TdmConfiguracion + OldCreateOrder = False + Height = 264 + Width = 275 + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Login.Username = '123456' + Login.Password = 'sa' + KeepConnection = True + Left = 42 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 42 + Top = 88 + end + object DABINAdapter: TDABINAdapter + Left = 136 + Top = 16 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvConfiguracion' + Message = ROMessage + Channel = ROChannel + Left = 136 + Top = 88 + end +end diff --git a/Source/Base/uDataModuleConfiguracion.pas b/Source/Base/uDataModuleConfiguracion.pas new file mode 100644 index 00000000..acd75209 --- /dev/null +++ b/Source/Base/uDataModuleConfiguracion.pas @@ -0,0 +1,39 @@ +unit uDataModuleConfiguracion; + +interface + +uses + SysUtils, Classes, uROServiceComponent, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, uROBinMessage, uROWinInetHttpChannel; + +const + SERVER_URL = 'http://localhost:8099/bin'; + +type + TdmConfiguracion = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + DABINAdapter: TDABINAdapter; + RORemoteService: TRORemoteService; + public + function darValor(const CODIGO: String): Variant; + end; + +var + dmConfiguracion: TdmConfiguracion; + +implementation + +{$R *.dfm} + +uses FactuGES_Intf, Variants; + + +{ TdmConfiguracion } + +function TdmConfiguracion.darValor(const CODIGO: String): Variant; +begin + Result := (RORemoteService as IsrvConfiguracion).darValor(CODIGO); +end; + +end. diff --git a/Source/Base/uExceptions.pas b/Source/Base/uExceptions.pas new file mode 100644 index 00000000..d3e6e852 --- /dev/null +++ b/Source/Base/uExceptions.pas @@ -0,0 +1,20 @@ +unit uExceptions; + +interface + +uses + uDADataTable; + +const + AUF_FKVIOLATION = 'violation of FOREIGN KEY'; + AUF_HAVEVALUE = 'must have a value'; + +type + IApplyUpdateFailedException = interface + ['{B090A762-3D65-405E-A810-14DB4F6E8F82}'] + procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); + end; + +implementation + +end. diff --git a/Source/Base_Group.bdsgroup b/Source/Base_Group.bdsgroup new file mode 100644 index 00000000..92e0b127 --- /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/ClearFiles.msbuild b/Source/ClearFiles.msbuild new file mode 100644 index 00000000..30f4b9de --- /dev/null +++ b/Source/ClearFiles.msbuild @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Cliente/Cliente_Group.bdsgroup b/Source/Cliente/Cliente_Group.bdsgroup new file mode 100644 index 00000000..9dca6ab5 --- /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/Empresas_controller.drc b/Source/Cliente/Empresas_controller.drc new file mode 100644 index 00000000..4678b4d6 --- /dev/null +++ b/Source/Cliente/Empresas_controller.drc @@ -0,0 +1,19 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x47", "\x00", "\x65", "\x00", "\x73", "\x00", "\x74", "\x00", /* 0000: G.e.s.t. */ + "\x69", "\x00", "\xf3", "\x00", "\x6e", "\x00", "\x20", "\x00", /* 0008: i...n. . */ + "\x64", "\x00", "\x65", "\x00", "\x20", "\x00", "\x75", "\x00", /* 0010: d.e. .u. */ + "\x73", "\x00", "\x75", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0018: s.u.a.r. */ + "\x69", "\x00", "\x6f", "\x00", "\x73", "\x00", "\x00", "\x00" /* 0020: i.o.s... */ +END + diff --git a/Source/Cliente/Empresas_data.drc b/Source/Cliente/Empresas_data.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Cliente/Empresas_data.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Cliente/Empresas_plugin.drc b/Source/Cliente/Empresas_plugin.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Cliente/Empresas_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Cliente/Empresas_view.drc b/Source/Cliente/Empresas_view.drc new file mode 100644 index 00000000..4678b4d6 --- /dev/null +++ b/Source/Cliente/Empresas_view.drc @@ -0,0 +1,19 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x47", "\x00", "\x65", "\x00", "\x73", "\x00", "\x74", "\x00", /* 0000: G.e.s.t. */ + "\x69", "\x00", "\xf3", "\x00", "\x6e", "\x00", "\x20", "\x00", /* 0008: i...n. . */ + "\x64", "\x00", "\x65", "\x00", "\x20", "\x00", "\x75", "\x00", /* 0010: d.e. .u. */ + "\x73", "\x00", "\x75", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0018: s.u.a.r. */ + "\x69", "\x00", "\x6f", "\x00", "\x73", "\x00", "\x00", "\x00" /* 0020: i.o.s... */ +END + diff --git a/Source/Cliente/FactuGES.bdsproj b/Source/Cliente/FactuGES.bdsproj new file mode 100644 index 00000000..acc02027 --- /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; + + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 5 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 2.0.5.0 + FactuGES + + + + FactuGES + 1.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/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr new file mode 100644 index 00000000..f9a5d38b --- /dev/null +++ b/Source/Cliente/FactuGES.dpr @@ -0,0 +1,41 @@ +program FactuGES; + +uses + Forms, + Windows, + SysUtils, + uActualizacion, + 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'; + + + +{$R *.res} + +var + Version : String; + +begin + Application.Initialize; + Application.Title := 'FactuGES'; + + fActualizacion := TfActualizacion.Create(Application); + try + if fActualizacion.HayConfiguracion then + fActualizacion.Actualizar; + Version := fActualizacion.DarVersion; + finally + FreeAndNIL(fActualizacion); + end; + + Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); + Application.Run; + Application.Terminate; +end. + diff --git a/Source/Cliente/FactuGES.drc b/Source/Cliente/FactuGES.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Cliente/FactuGES.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc new file mode 100644 index 00000000..626ab25c --- /dev/null +++ b/Source/Cliente/FactuGES.rc @@ -0,0 +1,26 @@ +MAINICON ICON "T:\Codigo (Luis Leon)\Source\Iconos\Factuges.ico" +1 VERSIONINFO +FILEVERSION 2,0,4,0 +PRODUCTVERSION 2,0,4,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", "2.0.4.0\0" + VALUE "InternalName", "FactuGES\0" + VALUE "ProductName", "FactuGES\0" + VALUE "ProductVersion", "1.0.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 00000000..65099e5e Binary files /dev/null and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Cliente/FacturasCliente_data.drc b/Source/Cliente/FacturasCliente_data.drc new file mode 100644 index 00000000..239017f3 --- /dev/null +++ b/Source/Cliente/FacturasCliente_data.drc @@ -0,0 +1,20 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x46", "\x00", "\x61", "\x00", "\x73", "\x00", "\x74", "\x00", /* 0000: F.a.s.t. */ + "\x51", "\x00", "\x75", "\x00", "\x65", "\x00", "\x72", "\x00", /* 0008: Q.u.e.r. */ + "\x79", "\x00", "\x42", "\x00", "\x75", "\x00", "\x69", "\x00", /* 0010: y.B.u.i. */ + "\x6c", "\x00", "\x64", "\x00", "\x65", "\x00", "\x72", "\x00", /* 0018: l.d.e.r. */ + "\x20", "\x00", "\x31", "\x00", "\x2e", "\x00", "\x30", "\x00", /* 0020: .1...0. */ + "\x33", "\x00", "\x00", "\x00" /* 0028: 3... */ +END + diff --git a/Source/Cliente/Utiles/uClienteUtils.pas b/Source/Cliente/Utiles/uClienteUtils.pas new file mode 100644 index 00000000..2f5827d7 --- /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 00000000..f31420e7 --- /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 00000000..7e9658ca --- /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 línea 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/dbrtl.drc b/Source/Cliente/dbrtl.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Cliente/dbrtl.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Cliente/uAcercaDe.dfm b/Source/Cliente/uAcercaDe.dfm new file mode 100644 index 00000000..cc801f7f --- /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 00000000..312711ec --- /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 + ' - Versión ' + 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 DISEÑO S.L.');} + end; + finally + FreeAndNil(Obj); + end; + + if Assigned(FHostManager) then + begin + memModulos.Lines.Add(''); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Módulos 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/uMainMenuController.pas b/Source/Cliente/uMainMenuController.pas new file mode 100644 index 00000000..45381c1d --- /dev/null +++ b/Source/Cliente/uMainMenuController.pas @@ -0,0 +1,144 @@ +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); + published + 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, uPluginEmpresas, + uBizEmpresas, schEmpresasClient_Intf, + uMenuUtils, uDataModuleUsuarios; + + +{ 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 + dmUsuarios.IDEmpresaActual := (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 := FMainForm.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; + AMenu : TMainMenu; +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; + +initialization + MainMenuController := TMainMenuController.Create; + +finalization + MainMenuController.Free; + MainMenuController := NIL; + +end. diff --git a/Source/Cliente/uNavPaneController.pas b/Source/Cliente/uNavPaneController.pas new file mode 100644 index 00000000..b47ccadd --- /dev/null +++ b/Source/Cliente/uNavPaneController.pas @@ -0,0 +1,230 @@ +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 + +uses + Dialogs, uModuleController, uAcercaDe, uNavPaneUtils, + uMainMenuController, uClienteUtils, Menus, uDataModuleBase, + uBizEmpresas, schEmpresasClient_Intf, 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 + Result := 0; + 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; + + 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 páginas con empresas y rellenarlas + AEmpresas := FMainForm.EmpresasController.BuscarTodos; + try + AEmpresas.DataTable.Active := True; + while not AEmpresas.DataTable.EOF do + begin + ASeccionPadre := NIL; + AIndex := -1; + + // Buscar la página si existe + AIndex := EncontrarPagina(FNavigationPane, AEmpresas.NOMBRE); + if AIndex > -1 then + ASeccionPadre := EncontrarSeccionPadre(FNavigationPane.NavPages[AIndex]) + else begin + // Crear la página 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; + + AEmpresas.DataTable.Next; + end; + AEmpresas.DataTable.Active := False; + finally + AEmpresas := NIL; + end; + finally + AListaSecciones.Free; + AListaSecciones := NIL; + 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; + +initialization + NavPaneController := TNavPaneController.Create; + +finalization + NavPaneController.Free; + NavPaneController := NIL; + +end. diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm new file mode 100644 index 00000000..273b23ab --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -0,0 +1,646 @@ +object fPantallaPrincipal: TfPantallaPrincipal + Left = 358 + Top = 250 + Caption = 'Pantalla principal' + ClientHeight = 642 + ClientWidth = 559 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Menu = HostMenu + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 13 + object pnlContenido: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 559 + Height = 620 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Margins.Bottom = 5 + ParentColor = True + Align = alClient + TabOrder = 0 + ExplicitHeight = 600 + object JvSyncSplitter1: TJvSyncSplitter + Left = 210 + Top = 5 + Width = 5 + Height = 610 + ResizeStyle = rsPattern + ExplicitHeight = 570 + end + object JvNavigationPane: TJvNavigationPane + Left = 5 + Top = 5 + Width = 205 + Height = 610 + 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 + ExplicitHeight = 590 + object pagInicio: TJvNavPanelPage + Left = 0 + Top = 0 + Width = 203 + Height = 537 + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + Caption = 'Inicio' + ImageIndex = 0 + ExplicitHeight = 517 + object Panel1: TPanel + Left = 0 + Top = 451 + Width = 203 + Height = 86 + Align = alBottom + Color = clWindow + ParentBackground = False + TabOrder = 1 + ExplicitTop = 431 + 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 = 215 + Top = 5 + Width = 339 + Height = 610 + BoundColor = clActiveCaption + BoundLines = [blLeft, blTop, blRight, blBottom] + Caption = 'pnlBorde' + Align = alClient + ExplicitHeight = 590 + object pnlMain: TTBXAlignmentPanel + Left = 1 + Top = 1 + Width = 337 + Height = 608 + Align = alClient + Color = clWindow + TabOrder = 0 + ExplicitHeight = 588 + 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 = 52 + 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 = 620 + Width = 559 + 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 + ExplicitTop = 600 + end + object XPManifest1: TXPManifest + Left = 248 + Top = 48 + end + object GeneralActionList: TActionList + Left = 312 + Top = 173 + object actSalir: TAction + Tag = -9000 + Category = 'Archivo' + Caption = '&Salir' + OnExecute = actSalirExecute + end + object actLogin: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Login' + OnExecute = actLoginExecute + 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' + Enabled = False + 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 = 'Compras' + Caption = 'Compras' + OnExecute = actMenuComprasExecute + OnUpdate = actMenuComprasUpdate + end + object actLogisticaMenu: TAction + Category = 'Log'#237'stica' + Caption = 'Log'#237'stica' + OnExecute = actLogisticaMenuExecute + OnUpdate = actMenuComprasUpdate + end + object actVentasMenu: TAction + Category = 'Ventas' + Caption = 'Ventas' + OnExecute = actVentasMenuExecute + OnUpdate = actMenuComprasUpdate + end + object actActualizaciones: TAction + Category = 'Opciones' + Caption = 'Configurar actualizaciones...' + OnExecute = actActualizacionesExecute + 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 HostManager: THostManager + MainMenu = HostMenu + OnAfterLoad = HostManagerAfterLoad + Left = 292 + Top = 47 + 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\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 472 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 504 + Top = 128 + end + object ApplicationEvents: TApplicationEvents + OnException = ApplicationEventsException + Left = 152 + Top = 174 + 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 = 384 + Top = 256 + object Archivo2_OLD: TMenuItem + Tag = -9000 + 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 = -8000 + Caption = 'Ver' + end + object Opciones1_OLD: TMenuItem + Tag = -7000 + Caption = 'Opciones' + object Configuraractualizaciones1: TMenuItem + Action = actActualizaciones + end + object Configurarconexin2_OLD: TMenuItem + Tag = 3 + Action = actConexion + end + end + object Ayuda2_OLD: TMenuItem + Tag = -6000 + Caption = 'Ayuda' + object Acercade2_OLD: TMenuItem + Action = actAcerca + end + end + object N1: TMenuItem + Tag = -5001 + Caption = '|' + end + object Empresa1_OLD: TMenuItem + Tag = -1000 + Caption = 'Empresa' + object Listadeempresas1_OLD: TMenuItem + Caption = 'Lista de empresas' + Visible = False + end + object N1_OLD: TMenuItem + Caption = '-' + Visible = False + end + end + object Logstica1: TMenuItem + Tag = 100 + Action = actLogisticaMenu + end + object Compras1: TMenuItem + Tag = 1000 + Action = actMenuCompras + end + object Ventas1: TMenuItem + Tag = 3000 + Action = actVentasMenu + end + end + object JvXPMenuItemPainter1: TJvXPMenuItemPainter + Left = 424 + Top = 256 + 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 = 267 + Top = 333 + Bitmap = {} + end +end diff --git a/Source/Cliente/uPantallaPrincipal.pas b/Source/Cliente/uPantallaPrincipal.pas new file mode 100644 index 00000000..58677aa8 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.pas @@ -0,0 +1,566 @@ +unit uPantallaPrincipal; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, XPMan, uGUIBase, uCustomEditor, + JvNavigationPane, JvExExtCtrls, JvComponent, Menus, ImgList, + PngImageList, ActnList, uHostManager, JvExControls, JvPageList, JvPanel, + TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, TBXToolPals, TBXLists, + TBXExtItems, TB2ExtItems, TBXMDI, TBXDkPanels, JvSplitter, JvSyncSplitter, + JvXPBar, JvXPCore, JvXPContainer, JvLookOut, JvOutlookBar, Buttons, + JvExButtons, JvBitBtn, JvSpeedButton, JvExStdCtrls, JvButton, JvCtrls, + JvStartMenuButton, JvTransparentButton, JvExComCtrls, JvListView, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvBaseDlg, + JvJVCLAboutForm, AppEvnts, JvWaitingGradient, JvGradient, + cxControls, JvComponentBase, JvMenus, TBXStatusBars, uEmpresasController, + pngimage; +type + + IMainForm = interface(IHostForm) + ['{56FCE1D7-E163-4A36-A468-A6324A4E3911}'] + function GetEmpresasController : IEmpresasController; + property EmpresasController : IEmpresasController read GetEmpresasController; + 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; + HostManager: THostManager; + 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; + actLogisticaMenu: TAction; + actVentasMenu: TAction; + Logstica1: TMenuItem; + pagInicio: TJvNavPanelPage; + Panel1: TPanel; + Label1: TLabel; + Image1: TImage; + actActualizaciones: TAction; + Configuraractualizaciones1: TMenuItem; + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure HostManagerAfterLoad(Sender: TObject; AModuleInfo: TModuleInfo); + procedure Salir1Click(Sender: TObject); + procedure actSalirExecute(Sender: TObject); + procedure actLoginExecute(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 actLogisticaMenuExecute(Sender: TObject); + procedure actVentasMenuExecute(Sender: TObject); + procedure actActualizacionesExecute(Sender: TObject); + private + FContenido : TCustomEditor; + FEmpresasController : IEmpresasController; + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + procedure AplicarPerfil; + procedure RefrescarUI; + procedure InicializarUI; + procedure CargarModulos; + procedure OnThemeChange(Sender: TObject); + procedure RegisterModule(AModuleInfo : TModuleInfo); + procedure ExecuteActionMenu(Sender : TObject); + protected + function GetWorkPanel : TWinControl; + function GetEmpresasController : IEmpresasController; + public + function IsShortcut(var Message: TWMKey): Boolean; override; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + constructor Create(AOwner: TComponent); override; + property WorkPanel : TWinControl read GetWorkPanel; + property EmpresasController : IEmpresasController read GetEmpresasController; + end; + +var + fPantallaPrincipal: TfPantallaPrincipal; + +implementation + +uses + uDataModuleConexion, uModuleController, uDataModuleBase, Math, uMenuUtils, + uSplash, uAcercaDe, UxTheme, Themes, uDataModuleUsuarios, uPluginEmpresas, + uNavPaneController, uMainMenuController, uROSessions, FactuGES_Intf, + uDialogUtils, uActualizacion; + +{$R *.dfm} + +function OpenThemeData(hwnd: HWND; pszClassList: LPCWSTR): THandle; stdcall; + external 'uxtheme.dll'; + +function CloseThemeData(hTheme: THandle): HRESULT; stdcall; + external 'uxtheme.dll'; + +function DrawThemeBackground(hTheme: THandle; hdc: HDC; iPartId, iStateId: +Integer; const pRect: TRect; + pClipRect: PRECT): HRESULT; stdcall; + external 'uxtheme.dll'; + +{ +***************************** TfPantallaPrincipal ****************************** +} + +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; + Caption := Application.Title + ' - ' + dmBase.DarVersion; + SplashScreen := TSplashScreen.Create(Application) ; + SplashScreen.Show; + + JvNavigationPane.StyleManager := dmBase.StyleManager; + dmBase.OnThemeChange := Self.OnThemeChange; + Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo + + with HostManager do + begin + BPLPath := ExtractFilePath(Application.ExeName) + '\'; + MainMenu := Self.Menu; + MainForm := Self; + OnAfterLoad := HostManagerAfterLoad; + end; + + actLogin.Execute; +end; + +procedure TfPantallaPrincipal.FormDestroy(Sender: TObject); +begin +// ReleaseEmbedded; + HostManager.UnloadModules; + ApplicationEvents.CancelDispatch; +end; + +procedure TfPantallaPrincipal.HostManagerAfterLoad(Sender: TObject; + AModuleInfo: TModuleInfo); +begin + RegisterModule(AModuleInfo); +end; + +procedure TfPantallaPrincipal.RefrescarUI; +var + ATitulo : String; +begin + ATitulo := Application.Title + ' - ' + dmBase.DarVersion; + if Assigned(dmUsuarios.EmpresaActual) then + ATitulo := ATitulo + ' - ' + dmUsuarios.EmpresaActual.NOMBRE; + Caption := ATitulo; + + if dmConexion.HayConexion then + TBXStatusBar1.Panels[0].Caption := 'Conectado a: ' + dmConexion.TargetURL + else + TBXStatusBar1.Panels[0].Caption := 'Desconectado'; + + if Assigned(dmUsuarios.LoginInfo) then + TBXStatusBar1.Panels[1].Caption := dmUsuarios.LoginInfo.Usuario + else + TBXStatusBar1.Panels[1].Caption := ''; +end; + +procedure TfPantallaPrincipal.RegisterModule(AModuleInfo : TModuleInfo); +var + AModule: TModuleController; + AEmpresasPlugin : IEmpresasPlugin; +begin + AModule := AModuleInfo.Module; + + SplashScreen.Texto := 'Cargando ''' + AModule.ModuleName + '''...'; + + if Supports(AModule, IEmpresasPlugin, AEmpresasPlugin) then + FEmpresasController := AEmpresasPlugin.Controller; +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.actVentasMenuExecute(Sender: TObject); +begin + // +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.GetEmpresasController: IEmpresasController; +begin + Result := FEmpresasController; +end; + +function TfPantallaPrincipal.GetWorkPanel: TWinControl; +begin + Result := pnlMain; +end; + +procedure TfPantallaPrincipal.InicializarUI; +var + i : Integer; +begin + for i := 0 to HostManager.ModulesCount - 1 do + MainMenuController.RegisterModule(HostManager.Modules[i]); + + MainMenuController.SortMenuByTag; + MainMenuController.InitMainMenu; + + for i := 0 to HostManager.ModulesCount - 1 do + NavPaneController.RegisterModule(HostManager.Modules[i]); + + NavPaneController.InitNavPane; + + if dmUsuarios.Empresas.Count = 1 then + begin + // Oculto la página de inicio para que no parezca + // que se pueden manejar varias empresas. + JvNavigationPane.ActivePageIndex := 1; + pagInicio.PageList := NIL; + pagInicio.Visible := False; + end; + + RefrescarUI; +end; + + +procedure TfPantallaPrincipal.actLoginExecute(Sender: TObject); +begin + HostManager.UnloadModules; + + if dmUsuarios.Login then + begin + ShowHourglassCursor; + SplashScreen.Update; + Application.ProcessMessages; + CargarModulos; + try + InicializarUI; + Application.ProcessMessages; + Visible := True; + AplicarPerfil; + finally + SplashScreen.Update; + SplashScreen.Hide; + FreeAndNIL(SplashScreen); + HideHourglassCursor; + end; + end + else + Application.Terminate; +end; + +procedure TfPantallaPrincipal.actMenuComprasExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.actMenuComprasUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(dmUsuarios.EmpresaActual); +end; + +procedure TfPantallaPrincipal.actLogisticaMenuExecute(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 + 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.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.CargarModulos; +begin + HostManager.LoadModule('Empresas_plugin.bpl'); + HostManager.LoadModule('FormasPago_plugin.bpl'); + HostManager.LoadModule('TiposIVA_plugin.bpl'); + HostManager.LoadModule('Almacenes_plugin.bpl'); + HostManager.LoadModule('Familias_plugin.bpl'); + HostManager.LoadModule('Articulos_plugin.bpl'); + HostManager.LoadModule('Inventario_plugin.bpl'); + HostManager.LoadModule('Contactos_plugin.bpl'); + HostManager.LoadModule('RecibosCliente_plugin.bpl'); + HostManager.LoadModule('RemesasCliente_plugin.bpl'); + HostManager.LoadModule('FacturasCliente_plugin.bpl'); + HostManager.LoadModule('RecibosProveedor_plugin.bpl'); + HostManager.LoadModule('FacturasProveedor_plugin.bpl'); +{ + HostManager.LoadModule('Presupuestos_plugin.bpl'); + HostManager.LoadModule('Montajes_plugin.bpl'); +} + HostManager.LoadModule('PedidosProveedor_plugin.bpl'); + HostManager.LoadModule('PedidosCliente_plugin.bpl'); + HostManager.LoadModule('AlbaranesProveedor_plugin.bpl'); + HostManager.LoadModule('AlbaranesCliente_plugin.bpl'); + HostManager.LoadModule('BancaElectronica_plugin.bpl'); + HostManager.LoadModule('Comisiones_plugin.bpl'); + HostManager.LoadModule('TiendaWeb_plugin.bpl'); +{ + HostManager.LoadModule('PedidosMontaje_plugin.bpl'); + HostManager.LoadModule('CobrosMontaje_plugin.bpl'); + HostManager.LoadModule('MontajesDetalle_plugin.bpl'); + HostManager.LoadModule('MontajesCompleto_plugin.bpl');} +end; + +constructor TfPantallaPrincipal.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; + + 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.actActualizacionesExecute(Sender: TObject); +begin + fActualizacion := TfActualizacion.Create(Self); + try + fActualizacion.ShowModal; + finally + FreeAndNil(fActualizacion); + end; +end; + +procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); +begin +// dmUsuarios.CambiarPassword; + RefrescarUI; +end; + +procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + HostManager := Self.HostManager; + 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; + + dmUsuarios.IDEmpresaActual := JvNavigationPane.ActivePage.Tag; + RefrescarUI; +end; + +procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject); +begin + dmConexion.ConfigurarConexion; + RefrescarUI; +end; + + +end. diff --git a/Source/Cliente/uSplash.dfm b/Source/Cliente/uSplash.dfm new file mode 100644 index 00000000..e3b377e7 --- /dev/null +++ b/Source/Cliente/uSplash.dfm @@ -0,0 +1,1068 @@ +object SplashScreen: TSplashScreen + Left = 507 + Top = 382 + BorderStyle = bsNone + Caption = 'SplashScreen' + ClientHeight = 275 + 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 + PixelsPerInch = 96 + TextHeight = 13 + object lblTexto: TLabel + Left = 11 + Top = 256 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 452 + Height = 252 + AutoSize = True + BevelOuter = bvNone + BorderWidth = 1 + Color = clBlack + TabOrder = 0 + object Image1: TImage + Left = 1 + Top = 1 + Width = 450 + Height = 250 + AutoSize = True + 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 00000000..d5794656 --- /dev/null +++ b/Source/Cliente/uSplash.pas @@ -0,0 +1,56 @@ +unit uSplash; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, JvGIF, StdCtrls; + +type + TSplashScreen = class(TForm) + Panel1: TPanel; + lblTexto: TLabel; + Image1: TImage; + procedure Image1Click(Sender: TObject); + private + function GetTexto: String; + procedure SetTexto(const Value: String); + { Private declarations } + public + property Texto : String read GetTexto write SetTexto; + procedure ShowAsAbout; + end; + +var + SplashScreen: TSplashScreen; + +implementation + +{$R *.dfm} + +{ TSplashScreen } + +procedure TSplashScreen.ShowAsAbout; +begin + Image1.OnClick := Image1Click; + ShowModal; +end; + +procedure TSplashScreen.Image1Click(Sender: TObject); +begin + Close; +end; + +function TSplashScreen.GetTexto: String; +begin + Result := lblTexto.Caption; + +end; + +procedure TSplashScreen.SetTexto(const Value: String); +begin + lblTexto.Caption := Value; + Self.Update; +end; + +end. diff --git a/Source/Compras_Group.bdsgroup b/Source/Compras_Group.bdsgroup new file mode 100644 index 00000000..185ecb70 --- /dev/null +++ b/Source/Compras_Group.bdsgroup @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + DataAbstract_D10\DataAbstract_D10.bdsproj + Base\Base.bdsproj + Base\GUIBase\GUIBase.bdsproj + Modulos\Contactos\Views\Contactos_view.bdsproj + Modulos\Articulos\Views\Articulos_view.bdsproj + Modulos\Recibos de proveedor\Model\RecibosProveedor_model.bdsproj + Modulos\Recibos de proveedor\Data\RecibosProveedor_data.bdsproj + Modulos\Recibos de proveedor\Controller\RecibosProveedor_controller.bdsproj + Modulos\Recibos de proveedor\Views\RecibosProveedor_view.bdsproj + Modulos\Recibos de proveedor\Plugin\RecibosProveedor_plugin.bdsproj + Modulos\Facturas de proveedor\Model\FacturasProveedor_model.bdsproj + Modulos\Facturas de proveedor\Data\FacturasProveedor_data.bdsproj + Modulos\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.bdsproj + Modulos\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.bdsproj + Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.bdsproj + Modulos\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.bdsproj + Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.bdsproj + Modulos\Facturas de proveedor\Controller\FacturasProveedor_controller.bdsproj + Modulos\Relaciones\Pedidos de proveedor - Facturas de proveedor\PedProv_FacProv_relation.bdsproj + Modulos\Facturas de proveedor\Views\FacturasProveedor_view.bdsproj + Modulos\Pedidos a proveedor\Views\PedidosProveedor_view.bdsproj + Modulos\Facturas de proveedor\Plugin\FacturasProveedor_plugin.bdsproj + Cliente\FactuGES.bdsproj + Servidor\FactuGES_Server.bdsproj + Modulos\Relaciones\Pedidos de cliente - Pedidos a proveedor\PedCli_PedProv_relation.bdsproj + Modulos\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.bdsproj + Modulos\Pedidos a proveedor\Model\PedidosProveedor_model.bdsproj + Modulos\Pedidos a proveedor\Data\PedidosProveedor_data.bdsproj + Modulos\Albaranes de proveedor\Model\AlbaranesProveedor_model.bdsproj + Modulos\Albaranes de proveedor\Data\AlbaranesProveedor_data.bdsproj + Modulos\Facturas de cliente\Controller\FacturasCliente_controller.bdsproj + Modulos\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.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 AlbProv_FacProv_relation.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedidosProveedor_controller.bpl FacturasProveedor_controller.bpl PedProv_FacProv_relation.bpl FacturasProveedor_view.bpl PedidosProveedor_view.bpl FacturasProveedor_plugin.bpl FactuGES.exe FactuGES_Server.exe PedCli_PedProv_relation.bpl PedProv_AlbProv_relation.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl FacturasCliente_controller.bpl AlbCli_FacCli_relation.bpl + + + + diff --git a/Source/Compras_Group.config b/Source/Compras_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Compras_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/DataAbstract_D10/BaseD10.drc b/Source/DataAbstract_D10/BaseD10.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/DataAbstract_D10/BaseD10.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/DataAbstract_D10/DataAbstract_D10.bdsproj b/Source/DataAbstract_D10/DataAbstract_D10.bdsproj new file mode 100644 index 00000000..e9e7c90a --- /dev/null +++ b/Source/DataAbstract_D10/DataAbstract_D10.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + DataAbstract_D10.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 + True + True + True + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\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/DataAbstract_D10/DataAbstract_D10.dpk b/Source/DataAbstract_D10/DataAbstract_D10.dpk new file mode 100644 index 00000000..bf622d75 --- /dev/null +++ b/Source/DataAbstract_D10/DataAbstract_D10.dpk @@ -0,0 +1,88 @@ +package DataAbstract_D10; + +{$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} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + dsnap; + +contains + uROEventRepository, + uRORes, + uROClasses, + uROThread, + uROTypes, + uRODL, + uRODLToXML, + uROXMLIntf, + uROMSXMLImpl, + uROMSXML2_TLB, + uROClient, + uROHTTPTools, + uROClientIntf, + uROSerializer, + uROBinaryHelpers, + uROEncryption, + uROZLib, + uROCipher1, + uROHash, + uRODECUtil, + uRODECConst, + uROCipher, + uROCiphers, + uROSessions, + uRORemoteService, + uROServiceComponent, + uRODynamicRequest, + uROWinInetHttpChannel, + uROBinMessage, + uROCompression, + uROStreamSerializer, + uDADataTable, + uDABINAdapter, + uDAScriptingProvider, + uDACDSDataTable, + uDAInterfaces, + uDARegExpr, + uDARes, + uDAClasses, + uDAEngine, + uDAHelpers, + uDAInterfacesEx, + uDAMacros, + uDAUtils, + uDADriverManager, + uDASupportClasses, + uDAXMLUtils, + DataAbstract_Intf, + uDAClientDataModule, + uDABusinessProcessor, + uDAOracleInterfaces, + uDADesigntimeCall; + +end. diff --git a/Source/DataAbstract_D10/DataAbstract_D10.drc b/Source/DataAbstract_D10/DataAbstract_D10.drc new file mode 100644 index 00000000..d6498a57 --- /dev/null +++ b/Source/DataAbstract_D10/DataAbstract_D10.drc @@ -0,0 +1,402 @@ +/* VER180 + Generated by the Borland 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 uDARes_err_NeedShareMem 65328 +#define uDARes_err_ExecuteSQLCommandNotAllowed 65329 +#define uDARes_err_UnknownParameter 65344 +#define uDARes_err_FieldIsNotBound 65345 +#define uDARes_err_CannotFindField 65346 +#define uDARes_err_LoadPackageFailed 65347 +#define uDARes_err_InvalidDriverReference 65348 +#define uDARes_err_CannotFindStatement 65349 +#define uDARes_err_CannotFindDefaultItem 65350 +#define uDARes_err_PoolIsNotEmpty 65351 +#define uDARes_err_MaxPoolSizeReached 65352 +#define uDARes_err_CannotAccessThisProperty 65353 +#define uDARes_err_LAMEDataset 65354 +#define uDARes_err_DARDMInvalidSchema 65355 +#define uDARes_err_DARDMMissingConnectionName 65356 +#define uDARes_err_DARDMUnassignedAdapter 65357 +#define uDARes_err_DARDMConnectionIsNotAssigned 65358 +#define uDARes_err_DARDMCannotFindProxessorForDelta 65359 +#define uDARes_err_InvalidDestination 65360 +#define uDARes_err_DriverManagerNotAssigned 65361 +#define uDARes_err_ConnectionManagerNotAssigned 65362 +#define uDARes_err_FieldTypeNotSupported 65363 +#define uDARes_err_NotSupported 65364 +#define uDARes_err_DataTypeNotSupportedByRemoteRequest 65365 +#define uDARes_err_InvalidDataset 65366 +#define uDARes_err_CannotMakeNILDefault 65367 +#define uDARes_err_DifferentOwnerCollection 65368 +#define uDARes_err_CannotFindItem 65369 +#define uDARes_err_InvalidCollectionType 65370 +#define uDARes_err_InvalidOwner 65371 +#define uDARes_err_DriverAlreadyLoaded 65372 +#define uDARes_err_DriverIsNotLoaded 65373 +#define uDARes_err_InvalidDLL 65374 +#define uDARes_err_UnknownDriver 65375 +#define uRODECConst_sInvalidCalc 65376 +#define uRODECConst_sInvalidDictionary 65377 +#define uRODECConst_sOTPIdent 65378 +#define uRODECConst_sOTPExt 65379 +#define uRODECConst_sOTPWord 65380 +#define uRODECConst_sOTPHex 65381 +#define uRODECConst_sSKeyIdent 65382 +#define uROWinInetHttpChannel_sxInvalidURLformat 65383 +#define uDARes_err_ChangeLogAlreadyStarted 65384 +#define uDARes_err_NotAttachedToDataTable 65385 +#define uDARes_err_DeltaAttachedToDataTable 65386 +#define uDARes_err_DriverProcAlreadyRegistered 65387 +#define uDARes_err_DriverManagerNotCreated 65388 +#define uDARes_err_DriverManagerAlreadyCreated 65389 +#define uDARes_err_DatasetNotAssigned 65390 +#define uDARes_err_VariantNotSupported 65391 +#define uRODECConst_sLoadFail 65392 +#define uRODECConst_sParams 65393 +#define uRODECConst_sJacobi 65394 +#define uRODECConst_sSPPrime 65395 +#define uRODECConst_sSetPrime 65396 +#define uRODECConst_sSetPrimeSize 65397 +#define uRODECConst_sSetPrimeParam 65398 +#define uRODECConst_sSqrt 65399 +#define uRODECConst_sExpMod 65400 +#define uRODECConst_sCalcName 65401 +#define uRODECConst_sInvalidState 65402 +#define uRODECConst_sIDOutOfRange 65403 +#define uRODECConst_sInvalidZIPData 65404 +#define uRODECConst_sInvalidChallenge 65405 +#define uRODECConst_sInvalidPassword 65406 +#define uRODECConst_sInvalidSeed 65407 +#define uRODECConst_sNotInitialized 65408 +#define uRODECConst_sInvalidMACMode 65409 +#define uRODECConst_sCantCalc 65410 +#define uRODECConst_sInvalidRandomStream 65411 +#define uRODECConst_sRandomDataProtected 65412 +#define uRODECConst_sBBSnotSeekable 65413 +#define uRODECConst_sBigNumDestroy 65414 +#define uRODECConst_sIndexOutOfRange 65415 +#define uRODECConst_sBigNumAborted 65416 +#define uRODECConst_sErrGeneric 65417 +#define uRODECConst_sErrAsInteger 65418 +#define uRODECConst_sErrAsComp 65419 +#define uRODECConst_sErrAsFloat 65420 +#define uRODECConst_sNumberFormat 65421 +#define uRODECConst_sDivByZero 65422 +#define uRODECConst_sStackIndex 65423 +#define uRORes_err_UnknownMessageType 65424 +#define uRORes_err_MasterServerNeedsChannel 65425 +#define uRORes_err_StreamIsReadOnly 65426 +#define uRODECConst_sProtectionCircular 65427 +#define uRODECConst_sStringFormatExists 65428 +#define uRODECConst_sInvalidStringFormat 65429 +#define uRODECConst_sInvalidFormatString 65430 +#define uRODECConst_sFMT_COPY 65431 +#define uRODECConst_sFMT_HEX 65432 +#define uRODECConst_sFMT_HEXL 65433 +#define uRODECConst_sFMT_MIME64 65434 +#define uRODECConst_sFMT_UU 65435 +#define uRODECConst_sFMT_XX 65436 +#define uRODECConst_sInvalidKey 65437 +#define uRODECConst_sInvalidCRC 65438 +#define uRODECConst_sInvalidKeySize 65439 +#define uRORes_err_CannotLoadXMLDocument 65440 +#define uRORes_err_ErrorCreatingMsXmlDoc 65441 +#define uRORes_err_NoXMLParsersAvailable 65442 +#define uRORes_err_IDispatchMarshalingNotSupported 65443 +#define uRORes_err_UnsupportedVariantType 65444 +#define uRORes_err_InvalidBinaryFormat 65445 +#define uRORes_err_VariantIsNotArray 65446 +#define uRORes_err_InvalidVarArrayDimCount 65447 +#define uRORes_err_CannotFindParameter 65448 +#define uRORes_err_CannotFindService 65449 +#define uRORes_err_RODLResourceNotLoaded 65450 +#define uRORes_err_MayNotAddResult 65451 +#define uRORes_err_OperationNameNeedsServiceName 65452 +#define uRORes_err_ServiceNameIsNotSet 65453 +#define uRORes_err_EventReceivedNotConnectedToMessage 65454 +#define uRORes_err_MessageNotAssigned 65455 +#define uRORes_err_MessagePropertyMustBeSet 65456 +#define uRORes_err_WinMessageFailed 65457 +#define uRORes_err_UnexpectedWinINetProblem 65458 +#define uRORes_err_CommunicationWithServerTimedOut 65459 +#define uRORes_err_CannotConnectToServer 65460 +#define uRORes_err_ConnectionError 65461 +#define uRORes_err_PoolSizeMustBe1orHigher 65462 +#define uRORes_err_NoFreeObjectsInPool 65463 +#define uRORes_msg_NoMultipleDispatchers 65464 +#define uRORes_err_InvalidStorage 65465 +#define uRORes_err_ErrorConvertingFloat 65466 +#define uRORes_err_SessionNotFound 65467 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65468 +#define uRORes_err_TooManySessions 65469 +#define uRORes_err_DOMElementIsNIL 65470 +#define uRORes_err_IndexOutOfBounds 65471 +#define uRORes_err_CannotAssignClass 65472 +#define uRORes_err_ChannelBusy 65473 +#define uRORes_err_DesignTimeProperty 65474 +#define uRORes_err_ExpectedParameterNotFound 65475 +#define uRORes_err_AmbigousResponse 65476 +#define uRORes_err_InvalidEnvelope 65477 +#define uRORes_err_InvalidData 65478 +#define uRORes_inf_InvalidEnvelopeNode 65479 +#define uRORes_inf_AbsentBody 65480 +#define uRORes_inf_AbsentMessage 65481 +#define uRORes_err_ArrayIndexOutOfBounds 65482 +#define uRORes_err_InvalidHeader 65483 +#define uRORes_err_UnknownClassInStream 65484 +#define uRORes_err_UnexpectedClassInStream 65485 +#define uRORes_err_InvalidDateTimeReadFromStream 65486 +#define uRORes_err_CannotFindServer 65487 +#define uRORes_err_ParameterNotFound 65488 +#define uRORes_err_NotImplemented 65489 +#define uRORes_err_TypeNotSupported 65490 +#define uRORes_err_ClassFactoryNotFound 65491 +#define uRORes_err_UnspecifiedTargetURL 65492 +#define uRORes_err_IROMessageNotSupported 65493 +#define uRORes_err_ClassAlreadyRegistered 65494 +#define uRORes_err_UnknownClass 65495 +#define uRORes_err_UnknownProxyInterface 65496 +#define uRORes_err_UnknownTransportChannelClass 65497 +#define uRORes_err_UnknownMessageClass 65498 +#define uRORes_err_DispatcherAlreadyAssigned 65499 +#define uRORes_err_CannotFindMessageDispatcher 65500 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65501 +#define uRORes_err_UnhandledException 65502 +#define uRORes_err_CannotReadRODLWithoutChannel 65503 +#define uRORes_err_RodlNoStructElementsDefined 65504 +#define uRORes_err_RodlNoOperationsDefined 65505 +#define uRORes_err_RodlUsedFileDoesNotExist 65506 +#define uRORes_err_RodlInvalidDataType 65507 +#define uRORes_err_RodlStructCannotBeNested 65508 +#define uRORes_err_RodlInvalidAncestorType 65509 +#define uRORes_err_UnspecifiedRODLLocation 65510 +#define uRORes_str_ExceptionOnServer 65511 +#define uRORes_str_ExceptionReraisedFromServer 65512 +#define uRORes_err_AssignError 65513 +#define uRORes_err_InvalidRequestStream 65514 +#define uRORes_err_NILMessage 65515 +#define uRORes_err_UnspecifiedInterface 65516 +#define uRORes_err_UnspecifiedMessage 65517 +#define uRORes_err_UnknownMethod 65518 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65519 +#define uRORes_err_InvalidIndex 65520 +#define uRORes_err_InvalidType 65521 +#define uRORes_err_InvalidLibrary 65522 +#define uRORes_err_InvalidStream 65523 +#define uRORes_err_InvalidTargetEntity 65524 +#define uRORes_err_InvalidParamFlag 65525 +#define uRORes_err_InvalidStringLength 65526 +#define uRORes_err_InvalidBinaryLength 65527 +#define uRORes_str_InvalidClassTypeInStream 65528 +#define uRORes_err_ObjectExpectedInStream 65529 +#define uRORes_err_UnexpectedEndOfStream 65530 +#define uRORes_err_MessageClassMustImplementAssign 65531 +#define uRORes_err_InvalidInfo 65532 +#define uRORes_err_RodlDuplicateName 65533 +#define uRORes_err_RodlNoDataTypeSpecified 65534 +#define uRORes_err_RodlNoEnumValues 65535 +STRINGTABLE +BEGIN + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." + uDARes_err_UnknownParameter, "Unknown parameter %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_CannotAccessThisProperty, "Cannot access this property with the current DataType value" + uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" + uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMMissingConnectionName, "Cannot acquire a connection without a ConnectionName or a OnBeforeAcquireConnection event handler" + uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" + uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + uDARes_err_InvalidDestination, "Invalid destination" + uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned" + uDARes_err_ConnectionManagerNotAssigned, "Connection Manager is not assigned" + uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported" + uDARes_err_NotSupported, "Not supported" + uDARes_err_DataTypeNotSupportedByRemoteRequest, "DataType is not supported by RemoteRequest" + uDARes_err_InvalidDataset, "Invalid or NIL dataset" + uDARes_err_CannotMakeNILDefault, "Cannot set NIL" + uDARes_err_DifferentOwnerCollection, "The connection definition is not owned by this collection" + uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s" + uDARes_err_InvalidCollectionType, "Invalid collection type" + uDARes_err_InvalidOwner, "Invalid owner" + uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded" + uDARes_err_DriverIsNotLoaded, "Driver %s was not loaded" + uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver" + uDARes_err_UnknownDriver, "Unknown driver %s" + uRODECConst_sInvalidCalc, "Invalid Parameters in OTPCalc." + uRODECConst_sInvalidDictionary, "Used Dictionary in %s is invalid." + uRODECConst_sOTPIdent, "otp-" + uRODECConst_sOTPExt, "ext" + uRODECConst_sOTPWord, "word:" + uRODECConst_sOTPHex, "hex:" + uRODECConst_sSKeyIdent, "s/key" + uROWinInetHttpChannel_sxInvalidURLformat, "Invalid URL format" + 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_DeltaAttachedToDataTable, "Cannot perform this operation on a delta that is attached to a DataTable" + uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered" + uDARes_err_DriverManagerNotCreated, "A Data Abstract DriverManager is not currently instantiated" + uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed" + uDARes_err_DatasetNotAssigned, "Dataset is not assigned" + uDARes_err_VariantNotSupported, "Variant type %d is not supported" + uRODECConst_sLoadFail, "BigNum invalid data format." + uRODECConst_sParams, "BigNum parameter error.\r\n%s." + uRODECConst_sJacobi, "BigNum Jacobi(A, B), B must be >= 3, Odd and B < A" + uRODECConst_sSPPrime, "BigNum IsSPPrime(A, Base), |Base| must be > 1, |A| > |Base| and |A| >= 3" + uRODECConst_sSetPrime, "BigNum SetPrime(Base, Residue, Modulus), Invalid Parameter.\r\n%s." + uRODECConst_sSetPrimeSize, "Value must be greater 32767" + uRODECConst_sSetPrimeParam, "GCD(Residue, Modulus) must be 1 and Residue < Modulus" + uRODECConst_sSqrt, "BigNum Sqrt(A) A must be position" + uRODECConst_sExpMod, "BigNum ExpMod(E, M) M must be positive" + uRODECConst_sCalcName, "Calculation No %d" + uRODECConst_sInvalidState, "Invalid Protector State detected." + uRODECConst_sIDOutOfRange, "Protector Error: ID is out of Range." + uRODECConst_sInvalidZIPData, "Invalid compressed Data detected." + uRODECConst_sInvalidChallenge, "Challenge is not an RO_RFC2289 Format." + uRODECConst_sInvalidPassword, "Invalid Passphraselength, must be more than 9 Chars." + uRODECConst_sInvalidSeed, "Invalid Seed Value in OTPCalc." + uRODECConst_sNotInitialized, "%s is not initialized call Init() or InitKey() before." + uRODECConst_sInvalidMACMode, "Invalid Ciphermode selected to produce a MAC.\r\nPlease use Modes cmCBC, cmCTS, cmCFB, cmCBCMAC, cmCFBMAC or cmCTSMAC for CalcMAC." + uRODECConst_sCantCalc, "Invalid Ciphermode selected." + uRODECConst_sInvalidRandomStream, "Invalid Random Data detected." + uRODECConst_sRandomDataProtected, "Random Data are protected." + uRODECConst_sBBSnotSeekable, "BBS Generator is not seekable." + uRODECConst_sBigNumDestroy, "Used Bignums in a BBS Generator can be not destroy." + uRODECConst_sIndexOutOfRange, "BBS Error: Index out of Range." + uRODECConst_sBigNumAborted, "BigNum aborted by User." + uRODECConst_sErrGeneric, "Bignum Generic Error." + uRODECConst_sErrAsInteger, "BigNum overflow in AsInteger." + uRODECConst_sErrAsComp, "BigNum overflow in AsComp." + uRODECConst_sErrAsFloat, "BigNum overflow in AsFloat." + uRODECConst_sNumberFormat, "BigNum invalid Numberformat for Base %d.\r\nValue: %s" + uRODECConst_sDivByZero, "BigNum division by Zero." + uRODECConst_sStackIndex, "BigNum Stackindex out of range." + uRORes_err_UnknownMessageType, "Unknown message type \"%s\"" + uRORes_err_MasterServerNeedsChannel, "No Channel assigned to %s." + uRORes_err_StreamIsReadOnly, "Stream is read-only." + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" not exists." + uRODECConst_sInvalidStringFormat, "Input is not an valid %s Format." + uRODECConst_sInvalidFormatString, "Input can not be convert 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_sInvalidKey, "Encryptionkey is invalid" + uRODECConst_sInvalidCRC, "Encrypted Data is corrupt, invalid Checksum" + uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be to %d-%d bytes" + 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_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported." + uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\"" + uRORes_err_InvalidBinaryFormat, "Invalid binary format for a variant" + 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_CannotFindService, "Cannot find service %s" + uRORes_err_RODLResourceNotLoaded, "RODL resource has not been loaded" + uRORes_err_MayNotAddResult, "Cannot add Result parameter to collection. Use AddResult instead" + uRORes_err_OperationNameNeedsServiceName, "Cannot set the OperationName without a ServiceName" + uRORes_err_ServiceNameIsNotSet, "ServiceName is not set" + uRORes_err_EventReceivedNotConnectedToMessage, "The event receiver must be connected to a message component first" + uRORes_err_MessageNotAssigned, "Message is NIL" + uRORes_err_MessagePropertyMustBeSet, "Message property must be assigned for the server to be active" + uRORes_err_WinMessageFailed, "Communication with the WinMessage Server failed or timed out (Error Code %d)" + uRORes_err_UnexpectedWinINetProblem, "Unexpected error in WinInet HTTP Channel (%d)" + uRORes_err_CommunicationWithServerTimedOut, "Communication with the server timed out (after %sms)" + uRORes_err_CannotConnectToServer, "Cannot connect to server \"%s\"" + uRORes_err_ConnectionError, "Connection error" + uRORes_err_PoolSizeMustBe1orHigher, "Pool Size must be 1 or higher" + uRORes_err_NoFreeObjectsInPool, "There are no Free Objects in the Pool. Try again later." + uRORes_msg_NoMultipleDispatchers, "Multiple message dispatchers not supported" + uRORes_err_InvalidStorage, "Invalid storage" + uRORes_err_ErrorConvertingFloat, "Error converting float \"%s\" at byte %d" + 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_IndexOutOfBounds, "Index out of bounds" + uRORes_err_CannotAssignClass, "Cannot Assign a \"%s\" to a \"%s\"." + uRORes_err_ChannelBusy, "Channel is busy. Try again later." + uRORes_err_DesignTimeProperty, "%s is a designtime-only property" + uRORes_err_ExpectedParameterNotFound, "Expected parameter \"%s\" was not found." + uRORes_err_AmbigousResponse, "Ambigous response. Expected one \"%s\" but %d were received" + uRORes_err_InvalidEnvelope, "Invalid SOAP Envelope. %s" + uRORes_err_InvalidData, "Cannot convert data for parameter \"%s\"\rException was \"%s\"\rData was \"%s\"." + uRORes_inf_InvalidEnvelopeNode, "SOAP Envelope node missing or not root." + uRORes_inf_AbsentBody, "SOAP envelope does not contain a Body." + uRORes_inf_AbsentMessage, "SOAP Body does not contain a message nor a fault" + uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)." + uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." + 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_InvalidDateTimeReadFromStream, "Invalid DateTime read from Stream." + uRORes_err_CannotFindServer, "Cannot find server \"%s\"" + uRORes_err_ParameterNotFound, "Parameter \"%s\" was not found" + uRORes_err_NotImplemented, "Not implemented" + uRORes_err_TypeNotSupported, "Type \"%s\" not supported" + uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found" + uRORes_err_UnspecifiedTargetURL, "Unspecified TargetURL" + 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_UnknownTransportChannelClass, "Unknown transport channel class \"%s\"" + uRORes_err_UnknownMessageClass, "Unknown message class \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for for the requested path?" + uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher" + uRORes_err_UnhandledException, "Unhandled exception" + uRORes_err_CannotReadRODLWithoutChannel, "Cannot read RODL information without a channel" + 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_UnspecifiedRODLLocation, "Unspecified RODL location" + uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + 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_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\"" + uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" + uRORes_err_InvalidBinaryLength, "Stream read error: Invalid binary length \"%d\"" + uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\"" + uRORes_err_ObjectExpectedInStream, "Stream read error: Object expected, but nil found." + uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream." + uRORes_err_MessageClassMustImplementAssign, "Please implement Assign() for your custom message class." + uRORes_err_InvalidInfo, "Invalid or incomplete info." + uRORes_err_RodlDuplicateName, "Duplicate name." + uRORes_err_RodlNoDataTypeSpecified, "No data type specified." + uRORes_err_RodlNoEnumValues, "Enum does not contain any values." +END + diff --git a/Source/DataAbstract_D10/DataAbstract_D10.rc b/Source/DataAbstract_D10/DataAbstract_D10.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/DataAbstract_D10/DataAbstract_D10.res b/Source/DataAbstract_D10/DataAbstract_D10.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/DataAbstract_D10/DataAbstract_D10.res differ diff --git a/Source/FactuGES_Group.bdsgroup b/Source/FactuGES_Group.bdsgroup new file mode 100644 index 00000000..37eb7566 --- /dev/null +++ b/Source/FactuGES_Group.bdsgroup @@ -0,0 +1,117 @@ + + + + + + + + + + + + + DataAbstract_D10\DataAbstract_D10.bdsproj + Base\Base.bdsproj + Base\ControllerBase\ControllerBase.bdsproj + Base\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 + Modulos\Almacenes\Model\Almacenes_model.bdsproj + Modulos\Almacenes\Data\Almacenes_data.bdsproj + Modulos\Almacenes\Controller\Almacenes_controller.bdsproj + Modulos\Almacenes\Views\Almacenes_view.bdsproj + Modulos\Almacenes\Plugin\Almacenes_plugin.bdsproj + Modulos\Familias\Model\Familias_model.bdsproj + Modulos\Familias\Data\Familias_data.bdsproj + Modulos\Familias\Controller\Familias_controller.bdsproj + Modulos\Familias\Views\Familias_view.bdsproj + Modulos\Familias\Plugin\Familias_plugin.bdsproj + Modulos\Articulos\Model\Articulos_model.bdsproj + Modulos\Articulos\Data\Articulos_data.bdsproj + Modulos\Articulos\Controller\Articulos_controller.bdsproj + Modulos\Articulos\Views\Articulos_view.bdsproj + Modulos\Articulos\Plugin\Articulos_plugin.bdsproj + Modulos\Recibos de cliente\Model\RecibosCliente_model.bdsproj + Modulos\Recibos de cliente\Data\RecibosCliente_data.bdsproj + Modulos\Recibos de cliente\Controller\RecibosCliente_controller.bdsproj + Modulos\Recibos de cliente\Views\RecibosCliente_view.bdsproj + Modulos\Recibos de cliente\Plugin\RecibosCliente_plugin.bdsproj + Modulos\Remesas de cliente\Model\RemesasCliente_model.bdsproj + Modulos\Remesas de cliente\Data\RemesasCliente_data.bdsproj + Modulos\Remesas de cliente\Controller\RemesasCliente_controller.bdsproj + Modulos\Banca electronica\Controller\BancaElectronica_controller.bdsproj + Modulos\Banca electronica\Views\BancaElectronica_view.bdsproj + Modulos\Remesas de cliente\Views\RemesasCliente_view.bdsproj + Modulos\Remesas de cliente\Plugin\RemesasCliente_plugin.bdsproj + Modulos\Pedidos de cliente\Model\PedidosCliente_model.bdsproj + Modulos\Pedidos de cliente\Data\PedidosCliente_data.bdsproj + Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.bdsproj + Modulos\Albaranes de cliente\Model\AlbaranesCliente_model.bdsproj + Modulos\Albaranes de cliente\Data\AlbaranesCliente_data.bdsproj + Modulos\Albaranes de cliente\Controller\AlbaranesCliente_controller.bdsproj + Modulos\Facturas de cliente\Model\FacturasCliente_model.bdsproj + Modulos\Facturas de cliente\Data\FacturasCliente_data.bdsproj + Modulos\Facturas de cliente\Controller\FacturasCliente_controller.bdsproj + Modulos\Pedidos a proveedor\Model\PedidosProveedor_model.bdsproj + Modulos\Pedidos a proveedor\Data\PedidosProveedor_data.bdsproj + Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.bdsproj + Modulos\Inventario\Model\Inventario_model.bdsproj + Modulos\Inventario\Data\Inventario_data.bdsproj + Modulos\Inventario\Controller\Inventario_controller.bdsproj + Modulos\Albaranes de proveedor\Model\AlbaranesProveedor_model.bdsproj + Modulos\Albaranes de proveedor\Data\AlbaranesProveedor_data.bdsproj + Modulos\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.bdsproj + Modulos\Relaciones\Pedidos de cliente - Pedidos a proveedor\PedCli_PedProv_relation.bdsproj + Modulos\Relaciones\Pedidos de cliente - Albaranes de cliente\PedCli_AlbCli_relation.bdsproj + Modulos\Pedidos de cliente\Views\PedidosCliente_view.bdsproj + Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.bdsproj + Modulos\Albaranes de cliente\Views\AlbaranesCliente_view.bdsproj + Modulos\Albaranes de cliente\Plugin\AlbaranesCliente_plugin.bdsproj + Modulos\Facturas de cliente\Views\FacturasCliente_view.bdsproj + Modulos\Facturas de cliente\Plugin\FacturasCliente_plugin.bdsproj + Modulos\Inventario\Views\Inventario_view.bdsproj + Modulos\Inventario\Plugin\Inventario_plugin.bdsproj + Modulos\Pedidos a proveedor\Views\PedidosProveedor_view.bdsproj + Modulos\Pedidos a proveedor\Plugin\PedidosProveedor_plugin.bdsproj + Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.bdsproj + Modulos\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.bdsproj + Modulos\Banca electronica\Plugin\BancaElectronica_plugin.bdsproj + Modulos\Comisiones\Model\Comisiones_model.bdsproj + Modulos\Comisiones\Data\Comisiones_data.bdsproj + Modulos\Comisiones\Controller\Comisiones_controller.bdsproj + Modulos\Comisiones\Views\Comisiones_view.bdsproj + Modulos\Comisiones\Plugin\Comisiones_plugin.bdsproj + Modulos\Tienda web\Model\TiendaWeb_model.bdsproj + Modulos\Tienda web\Data\TiendaWeb_data.bdsproj + Modulos\Tienda web\Controller\TiendaWeb_controller.bdsproj + Modulos\Tienda web\Views\TiendaWeb_view.bdsproj + Modulos\Tienda web\Plugin\TiendaWeb_plugin.bdsproj + Cliente\FactuGES.bdsproj + Servidor\FactuGES_Server.bdsproj + Modulos\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj + Modulos\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.bdsproj + DataAbstract_D10.bpl 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 Almacenes_model.bpl Almacenes_data.bpl Almacenes_controller.bpl Almacenes_view.bpl Almacenes_plugin.bpl Familias_model.bpl Familias_data.bpl Familias_controller.bpl Familias_view.bpl Familias_plugin.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl Articulos_plugin.bpl RecibosCliente_model.bpl RecibosCliente_data.bpl RecibosCliente_controller.bpl RecibosCliente_view.bpl RecibosCliente_plugin.bpl RemesasCliente_model.bpl RemesasCliente_data.bpl RemesasCliente_controller.bpl BancaElectronica_controller.bpl BancaElectronica_view.bpl RemesasCliente_view.bpl RemesasCliente_plugin.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl AlbaranesCliente_model.bpl AlbaranesCliente_data.bpl AlbaranesCliente_controller.bpl FacturasCliente_model.bpl FacturasCliente_data.bpl FacturasCliente_controller.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl Inventario_model.bpl Inventario_data.bpl Inventario_controller.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl PedCli_PedProv_relation.bpl PedCli_AlbCli_relation.bpl PedidosCliente_view.bpl PedidosCliente_plugin.bpl AlbaranesCliente_view.bpl AlbaranesCliente_plugin.bpl FacturasCliente_view.bpl FacturasCliente_plugin.bpl Inventario_view.bpl Inventario_plugin.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl BancaElectronica_plugin.bpl Comisiones_model.bpl Comisiones_data.bpl Comisiones_controller.bpl Comisiones_view.bpl Comisiones_plugin.bpl TiendaWeb_model.bpl TiendaWeb_data.bpl TiendaWeb_controller.bpl TiendaWeb_view.bpl TiendaWeb_plugin.bpl FactuGES.exe FactuGES_Server.exe AlbCli_FacCli_relation.bpl AlbProv_FacProv_relation.bpl + + + + diff --git a/Source/FactuGES_Group.config b/Source/FactuGES_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/FactuGES_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Iconos/Agenda/16x16/Date-Time.png b/Source/Iconos/Agenda/16x16/Date-Time.png new file mode 100644 index 00000000..fe95a0f6 Binary files /dev/null and b/Source/Iconos/Agenda/16x16/Date-Time.png differ diff --git a/Source/Iconos/Agenda/16x16/Thumbs.db b/Source/Iconos/Agenda/16x16/Thumbs.db new file mode 100644 index 00000000..fd97e6f1 Binary files /dev/null and b/Source/Iconos/Agenda/16x16/Thumbs.db differ diff --git a/Source/Iconos/Agenda/24x24/Date-Time.png b/Source/Iconos/Agenda/24x24/Date-Time.png new file mode 100644 index 00000000..665b7acd Binary files /dev/null and b/Source/Iconos/Agenda/24x24/Date-Time.png differ diff --git a/Source/Iconos/Agenda/24x24/Thumbs.db b/Source/Iconos/Agenda/24x24/Thumbs.db new file mode 100644 index 00000000..56c6f900 Binary files /dev/null and b/Source/Iconos/Agenda/24x24/Thumbs.db differ diff --git a/Source/Iconos/Agenda/28x28/Date-Time.png b/Source/Iconos/Agenda/28x28/Date-Time.png new file mode 100644 index 00000000..90f2320b Binary files /dev/null and b/Source/Iconos/Agenda/28x28/Date-Time.png differ diff --git a/Source/Iconos/Agenda/28x28/Thumbs.db b/Source/Iconos/Agenda/28x28/Thumbs.db new file mode 100644 index 00000000..1c607da2 Binary files /dev/null and b/Source/Iconos/Agenda/28x28/Thumbs.db differ diff --git a/Source/Iconos/Agenda/Thumbs.db b/Source/Iconos/Agenda/Thumbs.db new file mode 100644 index 00000000..fdd120a1 Binary files /dev/null and b/Source/Iconos/Agenda/Thumbs.db differ diff --git a/Source/Iconos/Albaranes/16x16/Letters patent.png b/Source/Iconos/Albaranes/16x16/Letters patent.png new file mode 100644 index 00000000..2a70568e Binary files /dev/null and b/Source/Iconos/Albaranes/16x16/Letters patent.png differ diff --git a/Source/Iconos/Albaranes/16x16/Thumbs.db b/Source/Iconos/Albaranes/16x16/Thumbs.db new file mode 100644 index 00000000..f690aed5 Binary files /dev/null and b/Source/Iconos/Albaranes/16x16/Thumbs.db differ diff --git a/Source/Iconos/Albaranes/16x16/pagado.png b/Source/Iconos/Albaranes/16x16/pagado.png new file mode 100644 index 00000000..274231ad Binary files /dev/null and b/Source/Iconos/Albaranes/16x16/pagado.png differ diff --git a/Source/Iconos/Albaranes/24x24/Letters patent.png b/Source/Iconos/Albaranes/24x24/Letters patent.png new file mode 100644 index 00000000..f82a076d Binary files /dev/null and b/Source/Iconos/Albaranes/24x24/Letters patent.png differ diff --git a/Source/Iconos/Albaranes/24x24/Thumbs.db b/Source/Iconos/Albaranes/24x24/Thumbs.db new file mode 100644 index 00000000..ee9196c8 Binary files /dev/null and b/Source/Iconos/Albaranes/24x24/Thumbs.db differ diff --git a/Source/Iconos/Albaranes/28x28/Letters patent.png b/Source/Iconos/Albaranes/28x28/Letters patent.png new file mode 100644 index 00000000..4b30b6f9 Binary files /dev/null and b/Source/Iconos/Albaranes/28x28/Letters patent.png differ diff --git a/Source/Iconos/Albaranes/28x28/Thumbs.db b/Source/Iconos/Albaranes/28x28/Thumbs.db new file mode 100644 index 00000000..6012de94 Binary files /dev/null and b/Source/Iconos/Albaranes/28x28/Thumbs.db differ diff --git a/Source/Iconos/Almacenes/16x16/Box-Closed-2.png b/Source/Iconos/Almacenes/16x16/Box-Closed-2.png new file mode 100644 index 00000000..35c88b20 Binary files /dev/null and b/Source/Iconos/Almacenes/16x16/Box-Closed-2.png differ diff --git a/Source/Iconos/Almacenes/16x16/Thumbs.db b/Source/Iconos/Almacenes/16x16/Thumbs.db new file mode 100644 index 00000000..ea2f89bc Binary files /dev/null and b/Source/Iconos/Almacenes/16x16/Thumbs.db differ diff --git a/Source/Iconos/Almacenes/16x16/nuevoalmacen.png b/Source/Iconos/Almacenes/16x16/nuevoalmacen.png new file mode 100644 index 00000000..0d7d5b88 Binary files /dev/null and b/Source/Iconos/Almacenes/16x16/nuevoalmacen.png differ diff --git a/Source/Iconos/Almacenes/24x24/Box-Closed-2.png b/Source/Iconos/Almacenes/24x24/Box-Closed-2.png new file mode 100644 index 00000000..7aeec56a Binary files /dev/null and b/Source/Iconos/Almacenes/24x24/Box-Closed-2.png differ diff --git a/Source/Iconos/Almacenes/24x24/Thumbs.db b/Source/Iconos/Almacenes/24x24/Thumbs.db new file mode 100644 index 00000000..3bc4c822 Binary files /dev/null and b/Source/Iconos/Almacenes/24x24/Thumbs.db differ diff --git a/Source/Iconos/Almacenes/24x24/nuevoalmacen.png b/Source/Iconos/Almacenes/24x24/nuevoalmacen.png new file mode 100644 index 00000000..1ddababc Binary files /dev/null and b/Source/Iconos/Almacenes/24x24/nuevoalmacen.png differ diff --git a/Source/Iconos/Almacenes/28x28/Box-Closed-2.png b/Source/Iconos/Almacenes/28x28/Box-Closed-2.png new file mode 100644 index 00000000..89db7f40 Binary files /dev/null and b/Source/Iconos/Almacenes/28x28/Box-Closed-2.png differ diff --git a/Source/Iconos/Almacenes/28x28/Thumbs.db b/Source/Iconos/Almacenes/28x28/Thumbs.db new file mode 100644 index 00000000..1e617685 Binary files /dev/null and b/Source/Iconos/Almacenes/28x28/Thumbs.db differ diff --git a/Source/Iconos/Artículos/16x16/Image.png b/Source/Iconos/Artículos/16x16/Image.png new file mode 100644 index 00000000..1c2bd1bd Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Image.png differ diff --git a/Source/Iconos/Artículos/16x16/Insert.png b/Source/Iconos/Artículos/16x16/Insert.png new file mode 100644 index 00000000..a6dde0f0 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Insert.png differ diff --git a/Source/Iconos/Artículos/16x16/Note-Edit.png b/Source/Iconos/Artículos/16x16/Note-Edit.png new file mode 100644 index 00000000..ae682883 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Note-Edit.png differ diff --git a/Source/Iconos/Artículos/16x16/Remove.png b/Source/Iconos/Artículos/16x16/Remove.png new file mode 100644 index 00000000..332ae886 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Remove.png differ diff --git a/Source/Iconos/Artículos/16x16/Swap.png b/Source/Iconos/Artículos/16x16/Swap.png new file mode 100644 index 00000000..bf54e00c Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Swap.png differ diff --git a/Source/Iconos/Artículos/16x16/Thumbs.db b/Source/Iconos/Artículos/16x16/Thumbs.db new file mode 100644 index 00000000..83cbe0c8 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/Thumbs.db differ diff --git a/Source/Iconos/Artículos/16x16/articulos.png b/Source/Iconos/Artículos/16x16/articulos.png new file mode 100644 index 00000000..acbaca94 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/articulos.png differ diff --git a/Source/Iconos/Artículos/16x16/comisionable.png b/Source/Iconos/Artículos/16x16/comisionable.png new file mode 100644 index 00000000..0b5765e6 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/comisionable.png differ diff --git a/Source/Iconos/Artículos/16x16/liberar.png b/Source/Iconos/Artículos/16x16/liberar.png new file mode 100644 index 00000000..0f05e979 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/liberar.png differ diff --git a/Source/Iconos/Artículos/16x16/no_comisionable.png b/Source/Iconos/Artículos/16x16/no_comisionable.png new file mode 100644 index 00000000..187e6add Binary files /dev/null and b/Source/Iconos/Artículos/16x16/no_comisionable.png differ diff --git a/Source/Iconos/Artículos/16x16/recibirpedido.png b/Source/Iconos/Artículos/16x16/recibirpedido.png new file mode 100644 index 00000000..8d0db7f4 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/recibirpedido.png differ diff --git a/Source/Iconos/Artículos/16x16/reservar.png b/Source/Iconos/Artículos/16x16/reservar.png new file mode 100644 index 00000000..475c2f85 Binary files /dev/null and b/Source/Iconos/Artículos/16x16/reservar.png differ diff --git a/Source/Iconos/Artículos/24x24/Image.png b/Source/Iconos/Artículos/24x24/Image.png new file mode 100644 index 00000000..e7e2e3af Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Image.png differ diff --git a/Source/Iconos/Artículos/24x24/Insert.png b/Source/Iconos/Artículos/24x24/Insert.png new file mode 100644 index 00000000..55fa057d Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Insert.png differ diff --git a/Source/Iconos/Artículos/24x24/Note-Edit.png b/Source/Iconos/Artículos/24x24/Note-Edit.png new file mode 100644 index 00000000..639ffa64 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Note-Edit.png differ diff --git a/Source/Iconos/Artículos/24x24/Remove.png b/Source/Iconos/Artículos/24x24/Remove.png new file mode 100644 index 00000000..96872cd0 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Remove.png differ diff --git a/Source/Iconos/Artículos/24x24/Swap.png b/Source/Iconos/Artículos/24x24/Swap.png new file mode 100644 index 00000000..12cece46 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Swap.png differ diff --git a/Source/Iconos/Artículos/24x24/Thumbs.db b/Source/Iconos/Artículos/24x24/Thumbs.db new file mode 100644 index 00000000..6c3fefc9 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/Thumbs.db differ diff --git a/Source/Iconos/Artículos/24x24/articulos.png b/Source/Iconos/Artículos/24x24/articulos.png new file mode 100644 index 00000000..c638dfe6 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/articulos.png differ diff --git a/Source/Iconos/Artículos/24x24/liberar.png b/Source/Iconos/Artículos/24x24/liberar.png new file mode 100644 index 00000000..40be1394 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/liberar.png differ diff --git a/Source/Iconos/Artículos/24x24/recibirpedido.png b/Source/Iconos/Artículos/24x24/recibirpedido.png new file mode 100644 index 00000000..87a39a09 Binary files /dev/null and b/Source/Iconos/Artículos/24x24/recibirpedido.png differ diff --git a/Source/Iconos/Artículos/24x24/reservar.png b/Source/Iconos/Artículos/24x24/reservar.png new file mode 100644 index 00000000..a380fe5e Binary files /dev/null and b/Source/Iconos/Artículos/24x24/reservar.png differ diff --git a/Source/Iconos/Artículos/28x28/Image.png b/Source/Iconos/Artículos/28x28/Image.png new file mode 100644 index 00000000..08988ff5 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Image.png differ diff --git a/Source/Iconos/Artículos/28x28/Insert.png b/Source/Iconos/Artículos/28x28/Insert.png new file mode 100644 index 00000000..1cf6ee4e Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Insert.png differ diff --git a/Source/Iconos/Artículos/28x28/Note-Edit.png b/Source/Iconos/Artículos/28x28/Note-Edit.png new file mode 100644 index 00000000..c30be680 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Note-Edit.png differ diff --git a/Source/Iconos/Artículos/28x28/Remove.png b/Source/Iconos/Artículos/28x28/Remove.png new file mode 100644 index 00000000..f4f4bb20 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Remove.png differ diff --git a/Source/Iconos/Artículos/28x28/Swap.png b/Source/Iconos/Artículos/28x28/Swap.png new file mode 100644 index 00000000..2e23a78d Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Swap.png differ diff --git a/Source/Iconos/Artículos/28x28/Thumbs.db b/Source/Iconos/Artículos/28x28/Thumbs.db new file mode 100644 index 00000000..376d1ba3 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/Thumbs.db differ diff --git a/Source/Iconos/Artículos/28x28/articulos.png b/Source/Iconos/Artículos/28x28/articulos.png new file mode 100644 index 00000000..95147f2d Binary files /dev/null and b/Source/Iconos/Artículos/28x28/articulos.png differ diff --git a/Source/Iconos/Artículos/28x28/liberar.png b/Source/Iconos/Artículos/28x28/liberar.png new file mode 100644 index 00000000..bd5c233d Binary files /dev/null and b/Source/Iconos/Artículos/28x28/liberar.png differ diff --git a/Source/Iconos/Artículos/28x28/recibirpedido.png b/Source/Iconos/Artículos/28x28/recibirpedido.png new file mode 100644 index 00000000..15c59857 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/recibirpedido.png differ diff --git a/Source/Iconos/Artículos/28x28/reservar.png b/Source/Iconos/Artículos/28x28/reservar.png new file mode 100644 index 00000000..06ba9c55 Binary files /dev/null and b/Source/Iconos/Artículos/28x28/reservar.png differ diff --git a/Source/Iconos/Asientos/16x16/Cerrar.png b/Source/Iconos/Asientos/16x16/Cerrar.png new file mode 100644 index 00000000..e0a26441 Binary files /dev/null and b/Source/Iconos/Asientos/16x16/Cerrar.png differ diff --git a/Source/Iconos/Asientos/16x16/Thumbs.db b/Source/Iconos/Asientos/16x16/Thumbs.db new file mode 100644 index 00000000..1ee38c01 Binary files /dev/null and b/Source/Iconos/Asientos/16x16/Thumbs.db differ diff --git a/Source/Iconos/Asientos/16x16/Tick.png b/Source/Iconos/Asientos/16x16/Tick.png new file mode 100644 index 00000000..5d813a49 Binary files /dev/null and b/Source/Iconos/Asientos/16x16/Tick.png differ diff --git a/Source/Iconos/Asientos/24x24/Cerrar.png b/Source/Iconos/Asientos/24x24/Cerrar.png new file mode 100644 index 00000000..f421f369 Binary files /dev/null and b/Source/Iconos/Asientos/24x24/Cerrar.png differ diff --git a/Source/Iconos/Asientos/24x24/Thumbs.db b/Source/Iconos/Asientos/24x24/Thumbs.db new file mode 100644 index 00000000..7196d4f2 Binary files /dev/null and b/Source/Iconos/Asientos/24x24/Thumbs.db differ diff --git a/Source/Iconos/Asientos/24x24/Tick.png b/Source/Iconos/Asientos/24x24/Tick.png new file mode 100644 index 00000000..87126802 Binary files /dev/null and b/Source/Iconos/Asientos/24x24/Tick.png differ diff --git a/Source/Iconos/Asientos/28x28/Cerrar.png b/Source/Iconos/Asientos/28x28/Cerrar.png new file mode 100644 index 00000000..f690bb7a Binary files /dev/null and b/Source/Iconos/Asientos/28x28/Cerrar.png differ diff --git a/Source/Iconos/Asientos/28x28/Thumbs.db b/Source/Iconos/Asientos/28x28/Thumbs.db new file mode 100644 index 00000000..096feb0a Binary files /dev/null and b/Source/Iconos/Asientos/28x28/Thumbs.db differ diff --git a/Source/Iconos/Asientos/28x28/Tick.png b/Source/Iconos/Asientos/28x28/Tick.png new file mode 100644 index 00000000..293b401e Binary files /dev/null and b/Source/Iconos/Asientos/28x28/Tick.png differ diff --git a/Source/Iconos/Contactos/16x16/Box-Open-2.png b/Source/Iconos/Contactos/16x16/Box-Open-2.png new file mode 100644 index 00000000..8e304185 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Box-Open-2.png differ diff --git a/Source/Iconos/Contactos/16x16/Comisiones.png b/Source/Iconos/Contactos/16x16/Comisiones.png new file mode 100644 index 00000000..ce0f6285 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Comisiones.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact-Add.png b/Source/Iconos/Contactos/16x16/Contact-Add.png new file mode 100644 index 00000000..28bd71ce Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact-Add.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact-Edit.png b/Source/Iconos/Contactos/16x16/Contact-Edit.png new file mode 100644 index 00000000..c413b8b3 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact-Edit.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact.png b/Source/Iconos/Contactos/16x16/Contact.png new file mode 100644 index 00000000..00e503ff Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact2.png b/Source/Iconos/Contactos/16x16/Contact2.png new file mode 100644 index 00000000..c005eb1c Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact2.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact3.png b/Source/Iconos/Contactos/16x16/Contact3.png new file mode 100644 index 00000000..38b7fcdd Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact3.png differ diff --git a/Source/Iconos/Contactos/16x16/Contact4.png b/Source/Iconos/Contactos/16x16/Contact4.png new file mode 100644 index 00000000..0c12c3d8 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Contact4.png differ diff --git a/Source/Iconos/Contactos/16x16/Currency.png b/Source/Iconos/Contactos/16x16/Currency.png new file mode 100644 index 00000000..5ecaee85 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Currency.png differ diff --git a/Source/Iconos/Contactos/16x16/Internet.png b/Source/Iconos/Contactos/16x16/Internet.png new file mode 100644 index 00000000..1e96cc50 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Internet.png differ diff --git a/Source/Iconos/Contactos/16x16/Lock.png b/Source/Iconos/Contactos/16x16/Lock.png new file mode 100644 index 00000000..5b243007 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Lock.png differ diff --git a/Source/Iconos/Contactos/16x16/Mail.png b/Source/Iconos/Contactos/16x16/Mail.png new file mode 100644 index 00000000..640a3883 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Mail.png differ diff --git a/Source/Iconos/Contactos/16x16/Proveedor-Add.png b/Source/Iconos/Contactos/16x16/Proveedor-Add.png new file mode 100644 index 00000000..102e3413 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Proveedor-Add.png differ diff --git a/Source/Iconos/Contactos/16x16/Thumbs.db b/Source/Iconos/Contactos/16x16/Thumbs.db new file mode 100644 index 00000000..af71e1c8 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Thumbs.db differ diff --git a/Source/Iconos/Contactos/16x16/Unlock.png b/Source/Iconos/Contactos/16x16/Unlock.png new file mode 100644 index 00000000..74c6a486 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/Unlock.png differ diff --git a/Source/Iconos/Contactos/16x16/User.png b/Source/Iconos/Contactos/16x16/User.png new file mode 100644 index 00000000..ee6f2a7b Binary files /dev/null and b/Source/Iconos/Contactos/16x16/User.png differ diff --git a/Source/Iconos/Contactos/16x16/User2.png b/Source/Iconos/Contactos/16x16/User2.png new file mode 100644 index 00000000..3b33831c Binary files /dev/null and b/Source/Iconos/Contactos/16x16/User2.png differ diff --git a/Source/Iconos/Contactos/16x16/User3.png b/Source/Iconos/Contactos/16x16/User3.png new file mode 100644 index 00000000..6a5b5ce7 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/User3.png differ diff --git a/Source/Iconos/Contactos/16x16/User4.png b/Source/Iconos/Contactos/16x16/User4.png new file mode 100644 index 00000000..d501e3ae Binary files /dev/null and b/Source/Iconos/Contactos/16x16/User4.png differ diff --git a/Source/Iconos/Contactos/16x16/grupos.png b/Source/Iconos/Contactos/16x16/grupos.png new file mode 100644 index 00000000..5238f9b8 Binary files /dev/null and b/Source/Iconos/Contactos/16x16/grupos.png differ diff --git a/Source/Iconos/Contactos/24x24/Box-Open-2.png b/Source/Iconos/Contactos/24x24/Box-Open-2.png new file mode 100644 index 00000000..99594467 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Box-Open-2.png differ diff --git a/Source/Iconos/Contactos/24x24/Comisiones.png b/Source/Iconos/Contactos/24x24/Comisiones.png new file mode 100644 index 00000000..f0be9b40 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Comisiones.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact-Add.png b/Source/Iconos/Contactos/24x24/Contact-Add.png new file mode 100644 index 00000000..5aefd121 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact-Add.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact-Edit.png b/Source/Iconos/Contactos/24x24/Contact-Edit.png new file mode 100644 index 00000000..4ab86515 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact-Edit.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact.png b/Source/Iconos/Contactos/24x24/Contact.png new file mode 100644 index 00000000..3272bfdd Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact2.png b/Source/Iconos/Contactos/24x24/Contact2.png new file mode 100644 index 00000000..4a64469b Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact2.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact3.png b/Source/Iconos/Contactos/24x24/Contact3.png new file mode 100644 index 00000000..8fdf0236 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact3.png differ diff --git a/Source/Iconos/Contactos/24x24/Contact4.png b/Source/Iconos/Contactos/24x24/Contact4.png new file mode 100644 index 00000000..b9b58b32 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Contact4.png differ diff --git a/Source/Iconos/Contactos/24x24/Currency.png b/Source/Iconos/Contactos/24x24/Currency.png new file mode 100644 index 00000000..af28329e Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Currency.png differ diff --git a/Source/Iconos/Contactos/24x24/Lock.png b/Source/Iconos/Contactos/24x24/Lock.png new file mode 100644 index 00000000..546a3cb5 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Lock.png differ diff --git a/Source/Iconos/Contactos/24x24/Thumbs.db b/Source/Iconos/Contactos/24x24/Thumbs.db new file mode 100644 index 00000000..f5421e10 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Thumbs.db differ diff --git a/Source/Iconos/Contactos/24x24/Unlock.png b/Source/Iconos/Contactos/24x24/Unlock.png new file mode 100644 index 00000000..6fb233fc Binary files /dev/null and b/Source/Iconos/Contactos/24x24/Unlock.png differ diff --git a/Source/Iconos/Contactos/24x24/grupos.png b/Source/Iconos/Contactos/24x24/grupos.png new file mode 100644 index 00000000..d23ba6e3 Binary files /dev/null and b/Source/Iconos/Contactos/24x24/grupos.png differ diff --git a/Source/Iconos/Contactos/28x28/Box-Open-2.png b/Source/Iconos/Contactos/28x28/Box-Open-2.png new file mode 100644 index 00000000..e88310c2 Binary files /dev/null and b/Source/Iconos/Contactos/28x28/Box-Open-2.png differ diff --git a/Source/Iconos/Contactos/28x28/Currency.png b/Source/Iconos/Contactos/28x28/Currency.png new file mode 100644 index 00000000..0d7259cc Binary files /dev/null and b/Source/Iconos/Contactos/28x28/Currency.png differ diff --git a/Source/Iconos/Contactos/28x28/Lock.png b/Source/Iconos/Contactos/28x28/Lock.png new file mode 100644 index 00000000..079d7c56 Binary files /dev/null and b/Source/Iconos/Contactos/28x28/Lock.png differ diff --git a/Source/Iconos/Contactos/28x28/Thumbs.db b/Source/Iconos/Contactos/28x28/Thumbs.db new file mode 100644 index 00000000..89067f96 Binary files /dev/null and b/Source/Iconos/Contactos/28x28/Thumbs.db differ diff --git a/Source/Iconos/Contactos/28x28/Unlock.png b/Source/Iconos/Contactos/28x28/Unlock.png new file mode 100644 index 00000000..6ef3e1b0 Binary files /dev/null and b/Source/Iconos/Contactos/28x28/Unlock.png differ diff --git a/Source/Iconos/Contactos/28x28/grupos.png b/Source/Iconos/Contactos/28x28/grupos.png new file mode 100644 index 00000000..5dcccce4 Binary files /dev/null and b/Source/Iconos/Contactos/28x28/grupos.png differ diff --git a/Source/Iconos/Cuentas/16x16/Book-Open.png b/Source/Iconos/Cuentas/16x16/Book-Open.png new file mode 100644 index 00000000..83113786 Binary files /dev/null and b/Source/Iconos/Cuentas/16x16/Book-Open.png differ diff --git a/Source/Iconos/Cuentas/16x16/Books.png b/Source/Iconos/Cuentas/16x16/Books.png new file mode 100644 index 00000000..eaf0f6dd Binary files /dev/null and b/Source/Iconos/Cuentas/16x16/Books.png differ diff --git a/Source/Iconos/Cuentas/16x16/Thumbs.db b/Source/Iconos/Cuentas/16x16/Thumbs.db new file mode 100644 index 00000000..8b5e7933 Binary files /dev/null and b/Source/Iconos/Cuentas/16x16/Thumbs.db differ diff --git a/Source/Iconos/Cuentas/24x24/Book-Open.png b/Source/Iconos/Cuentas/24x24/Book-Open.png new file mode 100644 index 00000000..e6c602eb Binary files /dev/null and b/Source/Iconos/Cuentas/24x24/Book-Open.png differ diff --git a/Source/Iconos/Cuentas/24x24/Books.png b/Source/Iconos/Cuentas/24x24/Books.png new file mode 100644 index 00000000..a845dfc7 Binary files /dev/null and b/Source/Iconos/Cuentas/24x24/Books.png differ diff --git a/Source/Iconos/Cuentas/24x24/Thumbs.db b/Source/Iconos/Cuentas/24x24/Thumbs.db new file mode 100644 index 00000000..613b3ee3 Binary files /dev/null and b/Source/Iconos/Cuentas/24x24/Thumbs.db differ diff --git a/Source/Iconos/Cuentas/28x28/Book-Open.png b/Source/Iconos/Cuentas/28x28/Book-Open.png new file mode 100644 index 00000000..d7efe07f Binary files /dev/null and b/Source/Iconos/Cuentas/28x28/Book-Open.png differ diff --git a/Source/Iconos/Cuentas/28x28/Books.png b/Source/Iconos/Cuentas/28x28/Books.png new file mode 100644 index 00000000..64136d3f Binary files /dev/null and b/Source/Iconos/Cuentas/28x28/Books.png differ diff --git a/Source/Iconos/Cuentas/28x28/Thumbs.db b/Source/Iconos/Cuentas/28x28/Thumbs.db new file mode 100644 index 00000000..dd588db6 Binary files /dev/null and b/Source/Iconos/Cuentas/28x28/Thumbs.db differ diff --git a/Source/Iconos/Factuges.ico b/Source/Iconos/Factuges.ico new file mode 100644 index 00000000..9e11815d Binary files /dev/null and b/Source/Iconos/Factuges.ico differ diff --git a/Source/Iconos/Facturas de cliente/16x16/Invoice.png b/Source/Iconos/Facturas de cliente/16x16/Invoice.png new file mode 100644 index 00000000..1e2e9cce Binary files /dev/null and b/Source/Iconos/Facturas de cliente/16x16/Invoice.png differ diff --git a/Source/Iconos/Facturas de cliente/16x16/Thumbs.db b/Source/Iconos/Facturas de cliente/16x16/Thumbs.db new file mode 100644 index 00000000..4d09a87b Binary files /dev/null and b/Source/Iconos/Facturas de cliente/16x16/Thumbs.db differ diff --git a/Source/Iconos/Facturas de cliente/24x24/Invoice.png b/Source/Iconos/Facturas de cliente/24x24/Invoice.png new file mode 100644 index 00000000..c24cd70a Binary files /dev/null and b/Source/Iconos/Facturas de cliente/24x24/Invoice.png differ diff --git a/Source/Iconos/Facturas de cliente/24x24/Thumbs.db b/Source/Iconos/Facturas de cliente/24x24/Thumbs.db new file mode 100644 index 00000000..7047bebc Binary files /dev/null and b/Source/Iconos/Facturas de cliente/24x24/Thumbs.db differ diff --git a/Source/Iconos/Facturas de cliente/28x28/Invoice.png b/Source/Iconos/Facturas de cliente/28x28/Invoice.png new file mode 100644 index 00000000..045a1f70 Binary files /dev/null and b/Source/Iconos/Facturas de cliente/28x28/Invoice.png differ diff --git a/Source/Iconos/Facturas de cliente/28x28/Thumbs.db b/Source/Iconos/Facturas de cliente/28x28/Thumbs.db new file mode 100644 index 00000000..00a72925 Binary files /dev/null and b/Source/Iconos/Facturas de cliente/28x28/Thumbs.db differ diff --git a/Source/Iconos/Familias/16x16/00473.png b/Source/Iconos/Familias/16x16/00473.png new file mode 100644 index 00000000..e40fffcf Binary files /dev/null and b/Source/Iconos/Familias/16x16/00473.png differ diff --git a/Source/Iconos/Familias/16x16/Thumbs.db b/Source/Iconos/Familias/16x16/Thumbs.db new file mode 100644 index 00000000..d4079277 Binary files /dev/null and b/Source/Iconos/Familias/16x16/Thumbs.db differ diff --git a/Source/Iconos/Generales/16x16/09378.bmp b/Source/Iconos/Generales/16x16/09378.bmp new file mode 100644 index 00000000..248fc742 Binary files /dev/null and b/Source/Iconos/Generales/16x16/09378.bmp differ diff --git a/Source/Iconos/Generales/16x16/09378.png b/Source/Iconos/Generales/16x16/09378.png new file mode 100644 index 00000000..7e795992 Binary files /dev/null and b/Source/Iconos/Generales/16x16/09378.png differ diff --git a/Source/Iconos/Generales/16x16/About.png b/Source/Iconos/Generales/16x16/About.png new file mode 100644 index 00000000..32635dbb Binary files /dev/null and b/Source/Iconos/Generales/16x16/About.png differ diff --git a/Source/Iconos/Generales/16x16/Align-Centre-2.png b/Source/Iconos/Generales/16x16/Align-Centre-2.png new file mode 100644 index 00000000..d4f9ffd3 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Align-Centre-2.png differ diff --git a/Source/Iconos/Generales/16x16/Align-Left-2.png b/Source/Iconos/Generales/16x16/Align-Left-2.png new file mode 100644 index 00000000..63565ffe Binary files /dev/null and b/Source/Iconos/Generales/16x16/Align-Left-2.png differ diff --git a/Source/Iconos/Generales/16x16/Align-Right-2.png b/Source/Iconos/Generales/16x16/Align-Right-2.png new file mode 100644 index 00000000..3cd5ad91 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Align-Right-2.png differ diff --git a/Source/Iconos/Generales/16x16/Añadir-capítulo.png b/Source/Iconos/Generales/16x16/Añadir-capítulo.png new file mode 100644 index 00000000..16e9ab93 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Añadir-capítulo.png differ diff --git a/Source/Iconos/Generales/16x16/Añadir-material.png b/Source/Iconos/Generales/16x16/Añadir-material.png new file mode 100644 index 00000000..d43ef4ac Binary files /dev/null and b/Source/Iconos/Generales/16x16/Añadir-material.png differ diff --git a/Source/Iconos/Generales/16x16/Back.png b/Source/Iconos/Generales/16x16/Back.png new file mode 100644 index 00000000..31194b54 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Back.png differ diff --git a/Source/Iconos/Generales/16x16/Bold.png b/Source/Iconos/Generales/16x16/Bold.png new file mode 100644 index 00000000..fde06b45 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Bold.png differ diff --git a/Source/Iconos/Generales/16x16/Box-Closed.png b/Source/Iconos/Generales/16x16/Box-Closed.png new file mode 100644 index 00000000..189b83f2 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Box-Closed.png differ diff --git a/Source/Iconos/Generales/16x16/Box-Open-2.png b/Source/Iconos/Generales/16x16/Box-Open-2.png new file mode 100644 index 00000000..8e304185 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Box-Open-2.png differ diff --git a/Source/Iconos/Generales/16x16/Card-Copy.png b/Source/Iconos/Generales/16x16/Card-Copy.png new file mode 100644 index 00000000..0da221c6 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Card-Copy.png differ diff --git a/Source/Iconos/Generales/16x16/Clear.png b/Source/Iconos/Generales/16x16/Clear.png new file mode 100644 index 00000000..2062c27e Binary files /dev/null and b/Source/Iconos/Generales/16x16/Clear.png differ diff --git a/Source/Iconos/Generales/16x16/Copy.png b/Source/Iconos/Generales/16x16/Copy.png new file mode 100644 index 00000000..7067e8d9 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Copy.png differ diff --git a/Source/Iconos/Generales/16x16/Cut.png b/Source/Iconos/Generales/16x16/Cut.png new file mode 100644 index 00000000..3bb4451f Binary files /dev/null and b/Source/Iconos/Generales/16x16/Cut.png differ diff --git a/Source/Iconos/Generales/16x16/Debug-Breakpoint.png b/Source/Iconos/Generales/16x16/Debug-Breakpoint.png new file mode 100644 index 00000000..464fcd71 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Debug-Breakpoint.png differ diff --git a/Source/Iconos/Generales/16x16/Debug-Watch-Delete.png b/Source/Iconos/Generales/16x16/Debug-Watch-Delete.png new file mode 100644 index 00000000..8e2e6a1a Binary files /dev/null and b/Source/Iconos/Generales/16x16/Debug-Watch-Delete.png differ diff --git a/Source/Iconos/Generales/16x16/Debug-Watch.png b/Source/Iconos/Generales/16x16/Debug-Watch.png new file mode 100644 index 00000000..5976f758 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Debug-Watch.png differ diff --git a/Source/Iconos/Generales/16x16/Delete copia.bmp b/Source/Iconos/Generales/16x16/Delete copia.bmp new file mode 100644 index 00000000..5cf5cd87 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Delete copia.bmp differ diff --git a/Source/Iconos/Generales/16x16/Delete.png b/Source/Iconos/Generales/16x16/Delete.png new file mode 100644 index 00000000..cb27f309 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Delete.png differ diff --git a/Source/Iconos/Generales/16x16/Distribute-Rows Evenly.png b/Source/Iconos/Generales/16x16/Distribute-Rows Evenly.png new file mode 100644 index 00000000..42c647ba Binary files /dev/null and b/Source/Iconos/Generales/16x16/Distribute-Rows Evenly.png differ diff --git a/Source/Iconos/Generales/16x16/Edit.png b/Source/Iconos/Generales/16x16/Edit.png new file mode 100644 index 00000000..a4431dd7 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Edit.png differ diff --git a/Source/Iconos/Generales/16x16/Execute.png b/Source/Iconos/Generales/16x16/Execute.png new file mode 100644 index 00000000..f70dc846 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Execute.png differ diff --git a/Source/Iconos/Generales/16x16/Exit.png b/Source/Iconos/Generales/16x16/Exit.png new file mode 100644 index 00000000..21613aa8 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Exit.png differ diff --git a/Source/Iconos/Generales/16x16/Form-New.png b/Source/Iconos/Generales/16x16/Form-New.png new file mode 100644 index 00000000..d0e676a3 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Form-New.png differ diff --git a/Source/Iconos/Generales/16x16/Format-Font.png b/Source/Iconos/Generales/16x16/Format-Font.png new file mode 100644 index 00000000..d3040cdd Binary files /dev/null and b/Source/Iconos/Generales/16x16/Format-Font.png differ diff --git a/Source/Iconos/Generales/16x16/Forward.png b/Source/Iconos/Generales/16x16/Forward.png new file mode 100644 index 00000000..2a17743d Binary files /dev/null and b/Source/Iconos/Generales/16x16/Forward.png differ diff --git a/Source/Iconos/Generales/16x16/Home.png b/Source/Iconos/Generales/16x16/Home.png new file mode 100644 index 00000000..199e9cd5 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Home.png differ diff --git a/Source/Iconos/Generales/16x16/Italic.png b/Source/Iconos/Generales/16x16/Italic.png new file mode 100644 index 00000000..c5efeb35 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Italic.png differ diff --git a/Source/Iconos/Generales/16x16/Minus.png b/Source/Iconos/Generales/16x16/Minus.png new file mode 100644 index 00000000..ad8a7d0d Binary files /dev/null and b/Source/Iconos/Generales/16x16/Minus.png differ diff --git a/Source/Iconos/Generales/16x16/New.png b/Source/Iconos/Generales/16x16/New.png new file mode 100644 index 00000000..adfecfe6 Binary files /dev/null and b/Source/Iconos/Generales/16x16/New.png differ diff --git a/Source/Iconos/Generales/16x16/Outline-Collapse.png b/Source/Iconos/Generales/16x16/Outline-Collapse.png new file mode 100644 index 00000000..95ded088 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Outline-Collapse.png differ diff --git a/Source/Iconos/Generales/16x16/Outline-Expand.png b/Source/Iconos/Generales/16x16/Outline-Expand.png new file mode 100644 index 00000000..17cbe65a Binary files /dev/null and b/Source/Iconos/Generales/16x16/Outline-Expand.png differ diff --git a/Source/Iconos/Generales/16x16/Outline-Move Down.png b/Source/Iconos/Generales/16x16/Outline-Move Down.png new file mode 100644 index 00000000..09fdc688 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Outline-Move Down.png differ diff --git a/Source/Iconos/Generales/16x16/Outline-Move Up.png b/Source/Iconos/Generales/16x16/Outline-Move Up.png new file mode 100644 index 00000000..4678faca Binary files /dev/null and b/Source/Iconos/Generales/16x16/Outline-Move Up.png differ diff --git a/Source/Iconos/Generales/16x16/Parcel.png b/Source/Iconos/Generales/16x16/Parcel.png new file mode 100644 index 00000000..eb0ef92f Binary files /dev/null and b/Source/Iconos/Generales/16x16/Parcel.png differ diff --git a/Source/Iconos/Generales/16x16/Paste.png b/Source/Iconos/Generales/16x16/Paste.png new file mode 100644 index 00000000..f1cbee68 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Paste.png differ diff --git a/Source/Iconos/Generales/16x16/Plus copia.bmp b/Source/Iconos/Generales/16x16/Plus copia.bmp new file mode 100644 index 00000000..df1c069a Binary files /dev/null and b/Source/Iconos/Generales/16x16/Plus copia.bmp differ diff --git a/Source/Iconos/Generales/16x16/Plus.png b/Source/Iconos/Generales/16x16/Plus.png new file mode 100644 index 00000000..cab9e8e7 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Plus.png differ diff --git a/Source/Iconos/Generales/16x16/Preview.png b/Source/Iconos/Generales/16x16/Preview.png new file mode 100644 index 00000000..a1ee549e Binary files /dev/null and b/Source/Iconos/Generales/16x16/Preview.png differ diff --git a/Source/Iconos/Generales/16x16/Print-Options.png b/Source/Iconos/Generales/16x16/Print-Options.png new file mode 100644 index 00000000..cd0e5095 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Print-Options.png differ diff --git a/Source/Iconos/Generales/16x16/Print.png b/Source/Iconos/Generales/16x16/Print.png new file mode 100644 index 00000000..8f029d70 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Print.png differ diff --git a/Source/Iconos/Generales/16x16/Refresh.png b/Source/Iconos/Generales/16x16/Refresh.png new file mode 100644 index 00000000..9ed4aacf Binary files /dev/null and b/Source/Iconos/Generales/16x16/Refresh.png differ diff --git a/Source/Iconos/Generales/16x16/Save.png b/Source/Iconos/Generales/16x16/Save.png new file mode 100644 index 00000000..51eb9dea Binary files /dev/null and b/Source/Iconos/Generales/16x16/Save.png differ diff --git a/Source/Iconos/Generales/16x16/Search.png b/Source/Iconos/Generales/16x16/Search.png new file mode 100644 index 00000000..e7a67586 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Search.png differ diff --git a/Source/Iconos/Generales/16x16/Select All.png b/Source/Iconos/Generales/16x16/Select All.png new file mode 100644 index 00000000..b3476eb3 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Select All.png differ diff --git a/Source/Iconos/Generales/16x16/Speaking-Start.png b/Source/Iconos/Generales/16x16/Speaking-Start.png new file mode 100644 index 00000000..935e566a Binary files /dev/null and b/Source/Iconos/Generales/16x16/Speaking-Start.png differ diff --git a/Source/Iconos/Generales/16x16/Sum-2.png b/Source/Iconos/Generales/16x16/Sum-2.png new file mode 100644 index 00000000..6e5d8e92 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Sum-2.png differ diff --git a/Source/Iconos/Generales/16x16/Table-Find In Field.png b/Source/Iconos/Generales/16x16/Table-Find In Field.png new file mode 100644 index 00000000..3a6e075e Binary files /dev/null and b/Source/Iconos/Generales/16x16/Table-Find In Field.png differ diff --git a/Source/Iconos/Generales/16x16/Table-Search.png b/Source/Iconos/Generales/16x16/Table-Search.png new file mode 100644 index 00000000..be8bf80b Binary files /dev/null and b/Source/Iconos/Generales/16x16/Table-Search.png differ diff --git a/Source/Iconos/Generales/16x16/Thumbs.db b/Source/Iconos/Generales/16x16/Thumbs.db new file mode 100644 index 00000000..3bb8a861 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Thumbs.db differ diff --git a/Source/Iconos/Generales/16x16/Total-capítulo.png b/Source/Iconos/Generales/16x16/Total-capítulo.png new file mode 100644 index 00000000..4f721ba5 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Total-capítulo.png differ diff --git a/Source/Iconos/Generales/16x16/Título-capítulo.png b/Source/Iconos/Generales/16x16/Título-capítulo.png new file mode 100644 index 00000000..4eb60d9f Binary files /dev/null and b/Source/Iconos/Generales/16x16/Título-capítulo.png differ diff --git a/Source/Iconos/Generales/16x16/Underline.png b/Source/Iconos/Generales/16x16/Underline.png new file mode 100644 index 00000000..6ac4fd52 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Underline.png differ diff --git a/Source/Iconos/Generales/16x16/Undo.png b/Source/Iconos/Generales/16x16/Undo.png new file mode 100644 index 00000000..114cf33d Binary files /dev/null and b/Source/Iconos/Generales/16x16/Undo.png differ diff --git a/Source/Iconos/Generales/16x16/View-One Page.png b/Source/Iconos/Generales/16x16/View-One Page.png new file mode 100644 index 00000000..7573d11d Binary files /dev/null and b/Source/Iconos/Generales/16x16/View-One Page.png differ diff --git a/Source/Iconos/Generales/16x16/View-Page Width.png b/Source/Iconos/Generales/16x16/View-Page Width.png new file mode 100644 index 00000000..2ad4e8e1 Binary files /dev/null and b/Source/Iconos/Generales/16x16/View-Page Width.png differ diff --git a/Source/Iconos/Generales/16x16/WEB.PNG b/Source/Iconos/Generales/16x16/WEB.PNG new file mode 100644 index 00000000..58e5bc1f Binary files /dev/null and b/Source/Iconos/Generales/16x16/WEB.PNG differ diff --git a/Source/Iconos/Generales/16x16/Warning.png b/Source/Iconos/Generales/16x16/Warning.png new file mode 100644 index 00000000..0fca356c Binary files /dev/null and b/Source/Iconos/Generales/16x16/Warning.png differ diff --git a/Source/Iconos/Generales/16x16/Zoom-In.png b/Source/Iconos/Generales/16x16/Zoom-In.png new file mode 100644 index 00000000..812c814e Binary files /dev/null and b/Source/Iconos/Generales/16x16/Zoom-In.png differ diff --git a/Source/Iconos/Generales/16x16/Zoom-Out.png b/Source/Iconos/Generales/16x16/Zoom-Out.png new file mode 100644 index 00000000..e6ccf659 Binary files /dev/null and b/Source/Iconos/Generales/16x16/Zoom-Out.png differ diff --git a/Source/Iconos/Generales/16x16/db-Next-2.png b/Source/Iconos/Generales/16x16/db-Next-2.png new file mode 100644 index 00000000..759e9eee Binary files /dev/null and b/Source/Iconos/Generales/16x16/db-Next-2.png differ diff --git a/Source/Iconos/Generales/16x16/db-Previous-2.png b/Source/Iconos/Generales/16x16/db-Previous-2.png new file mode 100644 index 00000000..f673f282 Binary files /dev/null and b/Source/Iconos/Generales/16x16/db-Previous-2.png differ diff --git a/Source/Iconos/Generales/16x16/db-first-2.png b/Source/Iconos/Generales/16x16/db-first-2.png new file mode 100644 index 00000000..72740252 Binary files /dev/null and b/Source/Iconos/Generales/16x16/db-first-2.png differ diff --git a/Source/Iconos/Generales/16x16/db-last-2.png b/Source/Iconos/Generales/16x16/db-last-2.png new file mode 100644 index 00000000..bfb5d672 Binary files /dev/null and b/Source/Iconos/Generales/16x16/db-last-2.png differ diff --git a/Source/Iconos/Generales/16x16/haycambios.png b/Source/Iconos/Generales/16x16/haycambios.png new file mode 100644 index 00000000..693bda2e Binary files /dev/null and b/Source/Iconos/Generales/16x16/haycambios.png differ diff --git a/Source/Iconos/Generales/24x24/About.png b/Source/Iconos/Generales/24x24/About.png new file mode 100644 index 00000000..5d0ba3e2 Binary files /dev/null and b/Source/Iconos/Generales/24x24/About.png differ diff --git a/Source/Iconos/Generales/24x24/Back.png b/Source/Iconos/Generales/24x24/Back.png new file mode 100644 index 00000000..1cd4d319 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Back.png differ diff --git a/Source/Iconos/Generales/24x24/Box-Open-2.png b/Source/Iconos/Generales/24x24/Box-Open-2.png new file mode 100644 index 00000000..99594467 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Box-Open-2.png differ diff --git a/Source/Iconos/Generales/24x24/Card-Copy.png b/Source/Iconos/Generales/24x24/Card-Copy.png new file mode 100644 index 00000000..ee4b76fa Binary files /dev/null and b/Source/Iconos/Generales/24x24/Card-Copy.png differ diff --git a/Source/Iconos/Generales/24x24/Clear.png b/Source/Iconos/Generales/24x24/Clear.png new file mode 100644 index 00000000..4ce31c85 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Clear.png differ diff --git a/Source/Iconos/Generales/24x24/Copy.png b/Source/Iconos/Generales/24x24/Copy.png new file mode 100644 index 00000000..9bf2618a Binary files /dev/null and b/Source/Iconos/Generales/24x24/Copy.png differ diff --git a/Source/Iconos/Generales/24x24/Cut.png b/Source/Iconos/Generales/24x24/Cut.png new file mode 100644 index 00000000..b6e65298 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Cut.png differ diff --git a/Source/Iconos/Generales/24x24/Debug-Breakpoint.png b/Source/Iconos/Generales/24x24/Debug-Breakpoint.png new file mode 100644 index 00000000..16e45420 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Debug-Breakpoint.png differ diff --git a/Source/Iconos/Generales/24x24/Debug-Watch-Delete.png b/Source/Iconos/Generales/24x24/Debug-Watch-Delete.png new file mode 100644 index 00000000..89ae7bdc Binary files /dev/null and b/Source/Iconos/Generales/24x24/Debug-Watch-Delete.png differ diff --git a/Source/Iconos/Generales/24x24/Debug-Watch.png b/Source/Iconos/Generales/24x24/Debug-Watch.png new file mode 100644 index 00000000..547428e9 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Debug-Watch.png differ diff --git a/Source/Iconos/Generales/24x24/Delete.png b/Source/Iconos/Generales/24x24/Delete.png new file mode 100644 index 00000000..a1691845 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Delete.png differ diff --git a/Source/Iconos/Generales/24x24/Distribute-Rows Evenly.png b/Source/Iconos/Generales/24x24/Distribute-Rows Evenly.png new file mode 100644 index 00000000..e18f1278 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Distribute-Rows Evenly.png differ diff --git a/Source/Iconos/Generales/24x24/Edit.png b/Source/Iconos/Generales/24x24/Edit.png new file mode 100644 index 00000000..f39269ee Binary files /dev/null and b/Source/Iconos/Generales/24x24/Edit.png differ diff --git a/Source/Iconos/Generales/24x24/Execute.png b/Source/Iconos/Generales/24x24/Execute.png new file mode 100644 index 00000000..6dbcc3b4 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Execute.png differ diff --git a/Source/Iconos/Generales/24x24/Exit.png b/Source/Iconos/Generales/24x24/Exit.png new file mode 100644 index 00000000..70eadf91 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Exit.png differ diff --git a/Source/Iconos/Generales/24x24/Form-New.png b/Source/Iconos/Generales/24x24/Form-New.png new file mode 100644 index 00000000..74f4b0af Binary files /dev/null and b/Source/Iconos/Generales/24x24/Form-New.png differ diff --git a/Source/Iconos/Generales/24x24/Forward.png b/Source/Iconos/Generales/24x24/Forward.png new file mode 100644 index 00000000..2ceec67c Binary files /dev/null and b/Source/Iconos/Generales/24x24/Forward.png differ diff --git a/Source/Iconos/Generales/24x24/Home.png b/Source/Iconos/Generales/24x24/Home.png new file mode 100644 index 00000000..96b8c874 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Home.png differ diff --git a/Source/Iconos/Generales/24x24/Minus.png b/Source/Iconos/Generales/24x24/Minus.png new file mode 100644 index 00000000..1b2257fa Binary files /dev/null and b/Source/Iconos/Generales/24x24/Minus.png differ diff --git a/Source/Iconos/Generales/24x24/New.png b/Source/Iconos/Generales/24x24/New.png new file mode 100644 index 00000000..bca2ba79 Binary files /dev/null and b/Source/Iconos/Generales/24x24/New.png differ diff --git a/Source/Iconos/Generales/24x24/Outline-Collapse.png b/Source/Iconos/Generales/24x24/Outline-Collapse.png new file mode 100644 index 00000000..0e7c2cc9 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Outline-Collapse.png differ diff --git a/Source/Iconos/Generales/24x24/Outline-Expand.png b/Source/Iconos/Generales/24x24/Outline-Expand.png new file mode 100644 index 00000000..c643a7c0 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Outline-Expand.png differ diff --git a/Source/Iconos/Generales/24x24/Outline-Move Down.png b/Source/Iconos/Generales/24x24/Outline-Move Down.png new file mode 100644 index 00000000..65aaa61c Binary files /dev/null and b/Source/Iconos/Generales/24x24/Outline-Move Down.png differ diff --git a/Source/Iconos/Generales/24x24/Outline-Move Up.png b/Source/Iconos/Generales/24x24/Outline-Move Up.png new file mode 100644 index 00000000..3dc2673f Binary files /dev/null and b/Source/Iconos/Generales/24x24/Outline-Move Up.png differ diff --git a/Source/Iconos/Generales/24x24/Paste.png b/Source/Iconos/Generales/24x24/Paste.png new file mode 100644 index 00000000..9b4c3f0b Binary files /dev/null and b/Source/Iconos/Generales/24x24/Paste.png differ diff --git a/Source/Iconos/Generales/24x24/Plus.png b/Source/Iconos/Generales/24x24/Plus.png new file mode 100644 index 00000000..f60ef53f Binary files /dev/null and b/Source/Iconos/Generales/24x24/Plus.png differ diff --git a/Source/Iconos/Generales/24x24/Preview.png b/Source/Iconos/Generales/24x24/Preview.png new file mode 100644 index 00000000..4d185c12 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Preview.png differ diff --git a/Source/Iconos/Generales/24x24/Print-Options.png b/Source/Iconos/Generales/24x24/Print-Options.png new file mode 100644 index 00000000..b97b98c2 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Print-Options.png differ diff --git a/Source/Iconos/Generales/24x24/Print.png b/Source/Iconos/Generales/24x24/Print.png new file mode 100644 index 00000000..3f6e3908 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Print.png differ diff --git a/Source/Iconos/Generales/24x24/Refresh.png b/Source/Iconos/Generales/24x24/Refresh.png new file mode 100644 index 00000000..03cacdf8 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Refresh.png differ diff --git a/Source/Iconos/Generales/24x24/Save.png b/Source/Iconos/Generales/24x24/Save.png new file mode 100644 index 00000000..56cc7141 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Save.png differ diff --git a/Source/Iconos/Generales/24x24/Search.png b/Source/Iconos/Generales/24x24/Search.png new file mode 100644 index 00000000..3af96da8 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Search.png differ diff --git a/Source/Iconos/Generales/24x24/Select All.png b/Source/Iconos/Generales/24x24/Select All.png new file mode 100644 index 00000000..5632ed56 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Select All.png differ diff --git a/Source/Iconos/Generales/24x24/Speaking-Start.png b/Source/Iconos/Generales/24x24/Speaking-Start.png new file mode 100644 index 00000000..a02336a9 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Speaking-Start.png differ diff --git a/Source/Iconos/Generales/24x24/Sum-2.png b/Source/Iconos/Generales/24x24/Sum-2.png new file mode 100644 index 00000000..51a90c61 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Sum-2.png differ diff --git a/Source/Iconos/Generales/24x24/Table-Find In Field.png b/Source/Iconos/Generales/24x24/Table-Find In Field.png new file mode 100644 index 00000000..7b2c5f63 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Table-Find In Field.png differ diff --git a/Source/Iconos/Generales/24x24/Table-Search.png b/Source/Iconos/Generales/24x24/Table-Search.png new file mode 100644 index 00000000..b145e046 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Table-Search.png differ diff --git a/Source/Iconos/Generales/24x24/Thumbs.db b/Source/Iconos/Generales/24x24/Thumbs.db new file mode 100644 index 00000000..e4ded9dc Binary files /dev/null and b/Source/Iconos/Generales/24x24/Thumbs.db differ diff --git a/Source/Iconos/Generales/24x24/Undo.png b/Source/Iconos/Generales/24x24/Undo.png new file mode 100644 index 00000000..0fe4cc99 Binary files /dev/null and b/Source/Iconos/Generales/24x24/Undo.png differ diff --git a/Source/Iconos/Generales/24x24/View-One Page.png b/Source/Iconos/Generales/24x24/View-One Page.png new file mode 100644 index 00000000..b66609e7 Binary files /dev/null and b/Source/Iconos/Generales/24x24/View-One Page.png differ diff --git a/Source/Iconos/Generales/24x24/View-Page Width.png b/Source/Iconos/Generales/24x24/View-Page Width.png new file mode 100644 index 00000000..760a3235 Binary files /dev/null and b/Source/Iconos/Generales/24x24/View-Page Width.png differ diff --git a/Source/Iconos/Generales/24x24/Warning.png b/Source/Iconos/Generales/24x24/Warning.png new file mode 100644 index 00000000..e674c1fc Binary files /dev/null and b/Source/Iconos/Generales/24x24/Warning.png differ diff --git a/Source/Iconos/Generales/24x24/Zoom-In.png b/Source/Iconos/Generales/24x24/Zoom-In.png new file mode 100644 index 00000000..131feedf Binary files /dev/null and b/Source/Iconos/Generales/24x24/Zoom-In.png differ diff --git a/Source/Iconos/Generales/24x24/Zoom-Out.png b/Source/Iconos/Generales/24x24/Zoom-Out.png new file mode 100644 index 00000000..26cf347d Binary files /dev/null and b/Source/Iconos/Generales/24x24/Zoom-Out.png differ diff --git a/Source/Iconos/Generales/24x24/db-First-2.png b/Source/Iconos/Generales/24x24/db-First-2.png new file mode 100644 index 00000000..c36c2eab Binary files /dev/null and b/Source/Iconos/Generales/24x24/db-First-2.png differ diff --git a/Source/Iconos/Generales/24x24/db-Last-2.png b/Source/Iconos/Generales/24x24/db-Last-2.png new file mode 100644 index 00000000..97292c37 Binary files /dev/null and b/Source/Iconos/Generales/24x24/db-Last-2.png differ diff --git a/Source/Iconos/Generales/24x24/db-Next-2.png b/Source/Iconos/Generales/24x24/db-Next-2.png new file mode 100644 index 00000000..d23efc78 Binary files /dev/null and b/Source/Iconos/Generales/24x24/db-Next-2.png differ diff --git a/Source/Iconos/Generales/24x24/db-Previous-2.png b/Source/Iconos/Generales/24x24/db-Previous-2.png new file mode 100644 index 00000000..7c11e16a Binary files /dev/null and b/Source/Iconos/Generales/24x24/db-Previous-2.png differ diff --git a/Source/Iconos/Generales/28x28/Box-Open-2.png b/Source/Iconos/Generales/28x28/Box-Open-2.png new file mode 100644 index 00000000..e88310c2 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Box-Open-2.png differ diff --git a/Source/Iconos/Generales/28x28/Card-Copy.png b/Source/Iconos/Generales/28x28/Card-Copy.png new file mode 100644 index 00000000..60566d12 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Card-Copy.png differ diff --git a/Source/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Source/Iconos/Generales/28x28/Debug-Watch-Delete.png new file mode 100644 index 00000000..faf46e86 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Debug-Watch-Delete.png differ diff --git a/Source/Iconos/Generales/28x28/Debug-Watch.png b/Source/Iconos/Generales/28x28/Debug-Watch.png new file mode 100644 index 00000000..31c568fc Binary files /dev/null and b/Source/Iconos/Generales/28x28/Debug-Watch.png differ diff --git a/Source/Iconos/Generales/28x28/Distribute-Rows Evenly.png b/Source/Iconos/Generales/28x28/Distribute-Rows Evenly.png new file mode 100644 index 00000000..6b62515c Binary files /dev/null and b/Source/Iconos/Generales/28x28/Distribute-Rows Evenly.png differ diff --git a/Source/Iconos/Generales/28x28/Execute.png b/Source/Iconos/Generales/28x28/Execute.png new file mode 100644 index 00000000..16317901 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Execute.png differ diff --git a/Source/Iconos/Generales/28x28/Form-New.ico b/Source/Iconos/Generales/28x28/Form-New.ico new file mode 100644 index 00000000..4d3d3936 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Form-New.ico differ diff --git a/Source/Iconos/Generales/28x28/Form-New.png b/Source/Iconos/Generales/28x28/Form-New.png new file mode 100644 index 00000000..87352c43 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Form-New.png differ diff --git a/Source/Iconos/Generales/28x28/Home.png b/Source/Iconos/Generales/28x28/Home.png new file mode 100644 index 00000000..f89327a0 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Home.png differ diff --git a/Source/Iconos/Generales/28x28/New.png b/Source/Iconos/Generales/28x28/New.png new file mode 100644 index 00000000..0a3858ae Binary files /dev/null and b/Source/Iconos/Generales/28x28/New.png differ diff --git a/Source/Iconos/Generales/28x28/Outline-Move Down.png b/Source/Iconos/Generales/28x28/Outline-Move Down.png new file mode 100644 index 00000000..eb2aa92e Binary files /dev/null and b/Source/Iconos/Generales/28x28/Outline-Move Down.png differ diff --git a/Source/Iconos/Generales/28x28/Outline-Move Up.png b/Source/Iconos/Generales/28x28/Outline-Move Up.png new file mode 100644 index 00000000..43979596 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Outline-Move Up.png differ diff --git a/Source/Iconos/Generales/28x28/Speaking-Start.png b/Source/Iconos/Generales/28x28/Speaking-Start.png new file mode 100644 index 00000000..52294bbb Binary files /dev/null and b/Source/Iconos/Generales/28x28/Speaking-Start.png differ diff --git a/Source/Iconos/Generales/28x28/Sum-2.png b/Source/Iconos/Generales/28x28/Sum-2.png new file mode 100644 index 00000000..0508febb Binary files /dev/null and b/Source/Iconos/Generales/28x28/Sum-2.png differ diff --git a/Source/Iconos/Generales/28x28/Table-Find In Field.png b/Source/Iconos/Generales/28x28/Table-Find In Field.png new file mode 100644 index 00000000..f0e11e5d Binary files /dev/null and b/Source/Iconos/Generales/28x28/Table-Find In Field.png differ diff --git a/Source/Iconos/Generales/28x28/Table-Search.png b/Source/Iconos/Generales/28x28/Table-Search.png new file mode 100644 index 00000000..bb23481a Binary files /dev/null and b/Source/Iconos/Generales/28x28/Table-Search.png differ diff --git a/Source/Iconos/Generales/28x28/Thumbs.db b/Source/Iconos/Generales/28x28/Thumbs.db new file mode 100644 index 00000000..fd572afc Binary files /dev/null and b/Source/Iconos/Generales/28x28/Thumbs.db differ diff --git a/Source/Iconos/Generales/28x28/Warning.png b/Source/Iconos/Generales/28x28/Warning.png new file mode 100644 index 00000000..19aec799 Binary files /dev/null and b/Source/Iconos/Generales/28x28/Warning.png differ diff --git a/Source/Iconos/Montajes/16x16/Document-Labels.png b/Source/Iconos/Montajes/16x16/Document-Labels.png new file mode 100644 index 00000000..a6fa82b4 Binary files /dev/null and b/Source/Iconos/Montajes/16x16/Document-Labels.png differ diff --git a/Source/Iconos/Montajes/16x16/Thumbs.db b/Source/Iconos/Montajes/16x16/Thumbs.db new file mode 100644 index 00000000..e0cdbe2a Binary files /dev/null and b/Source/Iconos/Montajes/16x16/Thumbs.db differ diff --git a/Source/Iconos/Montajes/16x16/Tools.png b/Source/Iconos/Montajes/16x16/Tools.png new file mode 100644 index 00000000..21a2797c Binary files /dev/null and b/Source/Iconos/Montajes/16x16/Tools.png differ diff --git a/Source/Iconos/Montajes/24x24/Document-Labels.png b/Source/Iconos/Montajes/24x24/Document-Labels.png new file mode 100644 index 00000000..291dbb66 Binary files /dev/null and b/Source/Iconos/Montajes/24x24/Document-Labels.png differ diff --git a/Source/Iconos/Montajes/24x24/Thumbs.db b/Source/Iconos/Montajes/24x24/Thumbs.db new file mode 100644 index 00000000..9d7061f8 Binary files /dev/null and b/Source/Iconos/Montajes/24x24/Thumbs.db differ diff --git a/Source/Iconos/Montajes/24x24/Tools.png b/Source/Iconos/Montajes/24x24/Tools.png new file mode 100644 index 00000000..f682a143 Binary files /dev/null and b/Source/Iconos/Montajes/24x24/Tools.png differ diff --git a/Source/Iconos/Montajes/28x28/Document-Labels.png b/Source/Iconos/Montajes/28x28/Document-Labels.png new file mode 100644 index 00000000..cdf699dd Binary files /dev/null and b/Source/Iconos/Montajes/28x28/Document-Labels.png differ diff --git a/Source/Iconos/Montajes/28x28/Thumbs.db b/Source/Iconos/Montajes/28x28/Thumbs.db new file mode 100644 index 00000000..d013003f Binary files /dev/null and b/Source/Iconos/Montajes/28x28/Thumbs.db differ diff --git a/Source/Iconos/Montajes/28x28/Tools.png b/Source/Iconos/Montajes/28x28/Tools.png new file mode 100644 index 00000000..74aa0b10 Binary files /dev/null and b/Source/Iconos/Montajes/28x28/Tools.png differ diff --git a/Source/Iconos/Pagos/16x16/Thumbs.db b/Source/Iconos/Pagos/16x16/Thumbs.db new file mode 100644 index 00000000..8c47e94e Binary files /dev/null and b/Source/Iconos/Pagos/16x16/Thumbs.db differ diff --git a/Source/Iconos/Pagos/16x16/pagado.png b/Source/Iconos/Pagos/16x16/pagado.png new file mode 100644 index 00000000..37feab5d Binary files /dev/null and b/Source/Iconos/Pagos/16x16/pagado.png differ diff --git a/Source/Iconos/Pagos/24x24/Thumbs.db b/Source/Iconos/Pagos/24x24/Thumbs.db new file mode 100644 index 00000000..bfd91bb1 Binary files /dev/null and b/Source/Iconos/Pagos/24x24/Thumbs.db differ diff --git a/Source/Iconos/Pagos/24x24/pagado.png b/Source/Iconos/Pagos/24x24/pagado.png new file mode 100644 index 00000000..d986e6cd Binary files /dev/null and b/Source/Iconos/Pagos/24x24/pagado.png differ diff --git a/Source/Iconos/Pagos/28x28/Thumbs.db b/Source/Iconos/Pagos/28x28/Thumbs.db new file mode 100644 index 00000000..b46299e2 Binary files /dev/null and b/Source/Iconos/Pagos/28x28/Thumbs.db differ diff --git a/Source/Iconos/Pagos/28x28/pagado.png b/Source/Iconos/Pagos/28x28/pagado.png new file mode 100644 index 00000000..d8980b6b Binary files /dev/null and b/Source/Iconos/Pagos/28x28/pagado.png differ diff --git a/Source/Iconos/Pedidos a proveedor/16x16/Complete-0.png b/Source/Iconos/Pedidos a proveedor/16x16/Complete-0.png new file mode 100644 index 00000000..7531e3fb Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/16x16/Complete-0.png differ diff --git a/Source/Iconos/Pedidos a proveedor/16x16/Complete-100.png b/Source/Iconos/Pedidos a proveedor/16x16/Complete-100.png new file mode 100644 index 00000000..7e7fbb7c Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/16x16/Complete-100.png differ diff --git a/Source/Iconos/Pedidos a proveedor/16x16/Complete-50.png b/Source/Iconos/Pedidos a proveedor/16x16/Complete-50.png new file mode 100644 index 00000000..1972bb7e Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/16x16/Complete-50.png differ diff --git a/Source/Iconos/Pedidos a proveedor/16x16/Thumbs.db b/Source/Iconos/Pedidos a proveedor/16x16/Thumbs.db new file mode 100644 index 00000000..cfbb0c44 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/16x16/Thumbs.db differ diff --git a/Source/Iconos/Pedidos a proveedor/16x16/pedidos.png b/Source/Iconos/Pedidos a proveedor/16x16/pedidos.png new file mode 100644 index 00000000..bc972c80 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/16x16/pedidos.png differ diff --git a/Source/Iconos/Pedidos a proveedor/24x24/Complete-0.png b/Source/Iconos/Pedidos a proveedor/24x24/Complete-0.png new file mode 100644 index 00000000..4988815a Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/24x24/Complete-0.png differ diff --git a/Source/Iconos/Pedidos a proveedor/24x24/Complete-100.png b/Source/Iconos/Pedidos a proveedor/24x24/Complete-100.png new file mode 100644 index 00000000..fe23a48b Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/24x24/Complete-100.png differ diff --git a/Source/Iconos/Pedidos a proveedor/24x24/Complete-50.png b/Source/Iconos/Pedidos a proveedor/24x24/Complete-50.png new file mode 100644 index 00000000..147621b8 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/24x24/Complete-50.png differ diff --git a/Source/Iconos/Pedidos a proveedor/24x24/Thumbs.db b/Source/Iconos/Pedidos a proveedor/24x24/Thumbs.db new file mode 100644 index 00000000..ee1ecc4c Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/24x24/Thumbs.db differ diff --git a/Source/Iconos/Pedidos a proveedor/24x24/pedido.png b/Source/Iconos/Pedidos a proveedor/24x24/pedido.png new file mode 100644 index 00000000..19399384 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/24x24/pedido.png differ diff --git a/Source/Iconos/Pedidos a proveedor/28x28/Complete-0.png b/Source/Iconos/Pedidos a proveedor/28x28/Complete-0.png new file mode 100644 index 00000000..fa5ca6c5 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/28x28/Complete-0.png differ diff --git a/Source/Iconos/Pedidos a proveedor/28x28/Complete-100.png b/Source/Iconos/Pedidos a proveedor/28x28/Complete-100.png new file mode 100644 index 00000000..166d0c34 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/28x28/Complete-100.png differ diff --git a/Source/Iconos/Pedidos a proveedor/28x28/Complete-50.png b/Source/Iconos/Pedidos a proveedor/28x28/Complete-50.png new file mode 100644 index 00000000..5c81e926 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/28x28/Complete-50.png differ diff --git a/Source/Iconos/Pedidos a proveedor/28x28/Thumbs.db b/Source/Iconos/Pedidos a proveedor/28x28/Thumbs.db new file mode 100644 index 00000000..0831543f Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/28x28/Thumbs.db differ diff --git a/Source/Iconos/Pedidos a proveedor/28x28/pedido.png b/Source/Iconos/Pedidos a proveedor/28x28/pedido.png new file mode 100644 index 00000000..d7c4b430 Binary files /dev/null and b/Source/Iconos/Pedidos a proveedor/28x28/pedido.png differ diff --git a/Source/Iconos/Pedidos de cliente/16x16/Budget.png b/Source/Iconos/Pedidos de cliente/16x16/Budget.png new file mode 100644 index 00000000..8e1a4025 Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/16x16/Budget.png differ diff --git a/Source/Iconos/Pedidos de cliente/16x16/Thumbs.db b/Source/Iconos/Pedidos de cliente/16x16/Thumbs.db new file mode 100644 index 00000000..63caa5dd Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/16x16/Thumbs.db differ diff --git a/Source/Iconos/Pedidos de cliente/24x24/Budget.png b/Source/Iconos/Pedidos de cliente/24x24/Budget.png new file mode 100644 index 00000000..de2deb10 Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/24x24/Budget.png differ diff --git a/Source/Iconos/Pedidos de cliente/24x24/Thumbs.db b/Source/Iconos/Pedidos de cliente/24x24/Thumbs.db new file mode 100644 index 00000000..df0d90a3 Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/24x24/Thumbs.db differ diff --git a/Source/Iconos/Pedidos de cliente/28x28/Budget.png b/Source/Iconos/Pedidos de cliente/28x28/Budget.png new file mode 100644 index 00000000..3ff80eb0 Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/28x28/Budget.png differ diff --git a/Source/Iconos/Pedidos de cliente/28x28/Thumbs.db b/Source/Iconos/Pedidos de cliente/28x28/Thumbs.db new file mode 100644 index 00000000..e3ad226e Binary files /dev/null and b/Source/Iconos/Pedidos de cliente/28x28/Thumbs.db differ diff --git a/Source/Iconos/Presupuestos/16x16/Aumentar_letra.png b/Source/Iconos/Presupuestos/16x16/Aumentar_letra.png new file mode 100644 index 00000000..141ebc40 Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Aumentar_letra.png differ diff --git a/Source/Iconos/Presupuestos/16x16/Budget.png b/Source/Iconos/Presupuestos/16x16/Budget.png new file mode 100644 index 00000000..095f2f11 Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Budget.png differ diff --git a/Source/Iconos/Presupuestos/16x16/Delete-Blue.png b/Source/Iconos/Presupuestos/16x16/Delete-Blue.png new file mode 100644 index 00000000..33a2a14e Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Delete-Blue.png differ diff --git a/Source/Iconos/Presupuestos/16x16/Disminuir_letra.png b/Source/Iconos/Presupuestos/16x16/Disminuir_letra.png new file mode 100644 index 00000000..2febedb3 Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Disminuir_letra.png differ diff --git a/Source/Iconos/Presupuestos/16x16/Thumbs.db b/Source/Iconos/Presupuestos/16x16/Thumbs.db new file mode 100644 index 00000000..e85701d2 Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Thumbs.db differ diff --git a/Source/Iconos/Presupuestos/16x16/Tick.png b/Source/Iconos/Presupuestos/16x16/Tick.png new file mode 100644 index 00000000..264d0202 Binary files /dev/null and b/Source/Iconos/Presupuestos/16x16/Tick.png differ diff --git a/Source/Iconos/Presupuestos/24x24/Budget.png b/Source/Iconos/Presupuestos/24x24/Budget.png new file mode 100644 index 00000000..6d01c8dc Binary files /dev/null and b/Source/Iconos/Presupuestos/24x24/Budget.png differ diff --git a/Source/Iconos/Presupuestos/24x24/Delete-Blue.png b/Source/Iconos/Presupuestos/24x24/Delete-Blue.png new file mode 100644 index 00000000..6546282b Binary files /dev/null and b/Source/Iconos/Presupuestos/24x24/Delete-Blue.png differ diff --git a/Source/Iconos/Presupuestos/24x24/Thumbs.db b/Source/Iconos/Presupuestos/24x24/Thumbs.db new file mode 100644 index 00000000..b6d89269 Binary files /dev/null and b/Source/Iconos/Presupuestos/24x24/Thumbs.db differ diff --git a/Source/Iconos/Presupuestos/24x24/Tick.png b/Source/Iconos/Presupuestos/24x24/Tick.png new file mode 100644 index 00000000..8554e1f6 Binary files /dev/null and b/Source/Iconos/Presupuestos/24x24/Tick.png differ diff --git a/Source/Iconos/Presupuestos/28x28/Budget.png b/Source/Iconos/Presupuestos/28x28/Budget.png new file mode 100644 index 00000000..8f5e61e0 Binary files /dev/null and b/Source/Iconos/Presupuestos/28x28/Budget.png differ diff --git a/Source/Iconos/Presupuestos/28x28/Thumbs.db b/Source/Iconos/Presupuestos/28x28/Thumbs.db new file mode 100644 index 00000000..0fa2e5e7 Binary files /dev/null and b/Source/Iconos/Presupuestos/28x28/Thumbs.db differ diff --git a/Source/Iconos/Remesas/16x16/Export.png b/Source/Iconos/Remesas/16x16/Export.png new file mode 100644 index 00000000..fbbd22ee Binary files /dev/null and b/Source/Iconos/Remesas/16x16/Export.png differ diff --git a/Source/Iconos/Remesas/16x16/Thumbs.db b/Source/Iconos/Remesas/16x16/Thumbs.db new file mode 100644 index 00000000..327f029f Binary files /dev/null and b/Source/Iconos/Remesas/16x16/Thumbs.db differ diff --git a/Source/Iconos/Remesas/24x24/Export.png b/Source/Iconos/Remesas/24x24/Export.png new file mode 100644 index 00000000..07af21c8 Binary files /dev/null and b/Source/Iconos/Remesas/24x24/Export.png differ diff --git a/Source/Iconos/Remesas/24x24/Thumbs.db b/Source/Iconos/Remesas/24x24/Thumbs.db new file mode 100644 index 00000000..bc3ca4a1 Binary files /dev/null and b/Source/Iconos/Remesas/24x24/Thumbs.db differ diff --git a/Source/Iconos/Remesas/28x28/Export.png b/Source/Iconos/Remesas/28x28/Export.png new file mode 100644 index 00000000..cbf2bd25 Binary files /dev/null and b/Source/Iconos/Remesas/28x28/Export.png differ diff --git a/Source/Iconos/Remesas/28x28/Thumbs.db b/Source/Iconos/Remesas/28x28/Thumbs.db new file mode 100644 index 00000000..fcd00072 Binary files /dev/null and b/Source/Iconos/Remesas/28x28/Thumbs.db differ diff --git a/Source/Iconos/Servidor.ico b/Source/Iconos/Servidor.ico new file mode 100644 index 00000000..ff7c9cc3 Binary files /dev/null and b/Source/Iconos/Servidor.ico differ diff --git a/Source/Iconos/Servidor/16x16/Database.png b/Source/Iconos/Servidor/16x16/Database.png new file mode 100644 index 00000000..badb104a Binary files /dev/null and b/Source/Iconos/Servidor/16x16/Database.png differ diff --git a/Source/Iconos/Servidor/16x16/Thumbs.db b/Source/Iconos/Servidor/16x16/Thumbs.db new file mode 100644 index 00000000..58a51a2a Binary files /dev/null and b/Source/Iconos/Servidor/16x16/Thumbs.db differ diff --git a/Source/Iconos/Servidor/24x24/Database.png b/Source/Iconos/Servidor/24x24/Database.png new file mode 100644 index 00000000..cd859e17 Binary files /dev/null and b/Source/Iconos/Servidor/24x24/Database.png differ diff --git a/Source/Iconos/Servidor/24x24/Thumbs.db b/Source/Iconos/Servidor/24x24/Thumbs.db new file mode 100644 index 00000000..8d8cafa8 Binary files /dev/null and b/Source/Iconos/Servidor/24x24/Thumbs.db differ diff --git a/Source/Iconos/Servidor/28x28/Database.png b/Source/Iconos/Servidor/28x28/Database.png new file mode 100644 index 00000000..26d3c565 Binary files /dev/null and b/Source/Iconos/Servidor/28x28/Database.png differ diff --git a/Source/Iconos/Servidor/28x28/Thumbs.db b/Source/Iconos/Servidor/28x28/Thumbs.db new file mode 100644 index 00000000..722065a9 Binary files /dev/null and b/Source/Iconos/Servidor/28x28/Thumbs.db differ diff --git a/Source/Iconos/Thumbs.db b/Source/Iconos/Thumbs.db new file mode 100644 index 00000000..e4a0a964 Binary files /dev/null and b/Source/Iconos/Thumbs.db differ diff --git a/Source/Iconos/Usuarios/16x16/Thumbs.db b/Source/Iconos/Usuarios/16x16/Thumbs.db new file mode 100644 index 00000000..350bf6b2 Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/Thumbs.db differ diff --git a/Source/Iconos/Usuarios/16x16/User-Add.png b/Source/Iconos/Usuarios/16x16/User-Add.png new file mode 100644 index 00000000..1649f386 Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/User-Add.png differ diff --git a/Source/Iconos/Usuarios/16x16/User-Edit.png b/Source/Iconos/Usuarios/16x16/User-Edit.png new file mode 100644 index 00000000..a660a374 Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/User-Edit.png differ diff --git a/Source/Iconos/Usuarios/16x16/User-Password.png b/Source/Iconos/Usuarios/16x16/User-Password.png new file mode 100644 index 00000000..a6d89420 Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/User-Password.png differ diff --git a/Source/Iconos/Usuarios/16x16/User-Remove.png b/Source/Iconos/Usuarios/16x16/User-Remove.png new file mode 100644 index 00000000..5edbd1da Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/User-Remove.png differ diff --git a/Source/Iconos/Usuarios/16x16/User.png b/Source/Iconos/Usuarios/16x16/User.png new file mode 100644 index 00000000..ee6f2a7b Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/User.png differ diff --git a/Source/Iconos/Usuarios/16x16/Users.png b/Source/Iconos/Usuarios/16x16/Users.png new file mode 100644 index 00000000..c3766486 Binary files /dev/null and b/Source/Iconos/Usuarios/16x16/Users.png differ diff --git a/Source/Iconos/Usuarios/24x24/Thumbs.db b/Source/Iconos/Usuarios/24x24/Thumbs.db new file mode 100644 index 00000000..09f64b11 Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/Thumbs.db differ diff --git a/Source/Iconos/Usuarios/24x24/User-Add.png b/Source/Iconos/Usuarios/24x24/User-Add.png new file mode 100644 index 00000000..3616f187 Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/User-Add.png differ diff --git a/Source/Iconos/Usuarios/24x24/User-Edit.png b/Source/Iconos/Usuarios/24x24/User-Edit.png new file mode 100644 index 00000000..1af01adc Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/User-Edit.png differ diff --git a/Source/Iconos/Usuarios/24x24/User-Password.png b/Source/Iconos/Usuarios/24x24/User-Password.png new file mode 100644 index 00000000..a121a6bc Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/User-Password.png differ diff --git a/Source/Iconos/Usuarios/24x24/User-Remove.png b/Source/Iconos/Usuarios/24x24/User-Remove.png new file mode 100644 index 00000000..b50a9daa Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/User-Remove.png differ diff --git a/Source/Iconos/Usuarios/24x24/User.png b/Source/Iconos/Usuarios/24x24/User.png new file mode 100644 index 00000000..ddb1dd69 Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/User.png differ diff --git a/Source/Iconos/Usuarios/24x24/Users.png b/Source/Iconos/Usuarios/24x24/Users.png new file mode 100644 index 00000000..dbdd35cc Binary files /dev/null and b/Source/Iconos/Usuarios/24x24/Users.png differ diff --git a/Source/Iconos/Usuarios/28x28/Thumbs.db b/Source/Iconos/Usuarios/28x28/Thumbs.db new file mode 100644 index 00000000..026a15ca Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/Thumbs.db differ diff --git a/Source/Iconos/Usuarios/28x28/User-Add.png b/Source/Iconos/Usuarios/28x28/User-Add.png new file mode 100644 index 00000000..76459dc6 Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/User-Add.png differ diff --git a/Source/Iconos/Usuarios/28x28/User-Edit.png b/Source/Iconos/Usuarios/28x28/User-Edit.png new file mode 100644 index 00000000..139ec635 Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/User-Edit.png differ diff --git a/Source/Iconos/Usuarios/28x28/User-Password.png b/Source/Iconos/Usuarios/28x28/User-Password.png new file mode 100644 index 00000000..7720bf16 Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/User-Password.png differ diff --git a/Source/Iconos/Usuarios/28x28/User-Remove.png b/Source/Iconos/Usuarios/28x28/User-Remove.png new file mode 100644 index 00000000..b046745f Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/User-Remove.png differ diff --git a/Source/Iconos/Usuarios/28x28/User.png b/Source/Iconos/Usuarios/28x28/User.png new file mode 100644 index 00000000..e389c2a1 Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/User.png differ diff --git a/Source/Iconos/Usuarios/28x28/Users.png b/Source/Iconos/Usuarios/28x28/Users.png new file mode 100644 index 00000000..4c006ba0 Binary files /dev/null and b/Source/Iconos/Usuarios/28x28/Users.png differ diff --git a/Source/Iconos/Usuarios/48x48/Thumbs.db b/Source/Iconos/Usuarios/48x48/Thumbs.db new file mode 100644 index 00000000..18917777 Binary files /dev/null and b/Source/Iconos/Usuarios/48x48/Thumbs.db differ diff --git a/Source/Iconos/Usuarios/48x48/Users.png b/Source/Iconos/Usuarios/48x48/Users.png new file mode 100644 index 00000000..1697dfe9 Binary files /dev/null and b/Source/Iconos/Usuarios/48x48/Users.png differ diff --git a/Source/Iconos/fac.png b/Source/Iconos/fac.png new file mode 100644 index 00000000..35374432 Binary files /dev/null and b/Source/Iconos/fac.png differ diff --git a/Source/Lib/Base.dcp b/Source/Lib/Base.dcp new file mode 100644 index 00000000..32fef372 Binary files /dev/null and b/Source/Lib/Base.dcp differ diff --git a/Source/Lib/ControllerBase.dcp b/Source/Lib/ControllerBase.dcp new file mode 100644 index 00000000..b8daa72b Binary files /dev/null and b/Source/Lib/ControllerBase.dcp differ diff --git a/Source/Lib/DataAbstract_D10.dcp b/Source/Lib/DataAbstract_D10.dcp new file mode 100644 index 00000000..30d895d9 Binary files /dev/null and b/Source/Lib/DataAbstract_D10.dcp differ diff --git a/Source/Lib/GUIBase.dcp b/Source/Lib/GUIBase.dcp new file mode 100644 index 00000000..f63601c0 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 00000000..1a88e39c --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_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\AlbaranesCliente_model.bdsproj + Data\AlbaranesCliente_data.bdsproj + Controller\AlbaranesCliente_controller.bdsproj + Views\AlbaranesCliente_view.bdsproj + Plugin\AlbaranesCliente_plugin.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 + + + + 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 00000000..f7310459 --- /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.dpk b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk new file mode 100644 index 00000000..4a1f4c0d --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk @@ -0,0 +1,59 @@ +package AlbaranesCliente_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUIBase, + ControllerBase, + Contactos_controller, + dsnap, + vcldb, + adortl, + Articulos_controller, + PedidosCliente_model, + PedidosCliente_controller, + AlbaranesCliente_model, + AlbaranesCliente_data; + +contains + uAlbaranesClienteController in 'uAlbaranesClienteController.pas', + uDetallesAlbaranClienteController in 'uDetallesAlbaranClienteController.pas', + uIEditorAlbaranesCliente in 'View\uIEditorAlbaranesCliente.pas', + uIEditorAlbaranCliente in 'View\uIEditorAlbaranCliente.pas', + uIEditorElegirAlbaranesCliente in 'View\uIEditorElegirAlbaranesCliente.pas', + uArticulosAlbaranClienteController in 'uArticulosAlbaranClienteController.pas', + uIEditorElegirArticulosAlbaranesCliente in 'View\uIEditorElegirArticulosAlbaranesCliente.pas', + uIEditorDireccionEntregaAlbaranCliente in 'View\uIEditorDireccionEntregaAlbaranCliente.pas', + uAlbaranesClienteReportController in 'uAlbaranesClienteReportController.pas', + uIEditorAlbaranesClientePreview in 'View\uIEditorAlbaranesClientePreview.pas', + uIEditorAlbaranesDevCliente in 'View\uIEditorAlbaranesDevCliente.pas', + uIEditorAlbaranDevCliente in 'View\uIEditorAlbaranDevCliente.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.pas new file mode 100644 index 00000000..a358f1a7 --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.pas new file mode 100644 index 00000000..94f1dc48 --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.pas new file mode 100644 index 00000000..6665039a --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.pas new file mode 100644 index 00000000..310583f5 --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.pas new file mode 100644 index 00000000..5ebc2630 --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.pas new file mode 100644 index 00000000..0248bd15 --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas new file mode 100644 index 00000000..b0a93770 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas @@ -0,0 +1,26 @@ +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 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 cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas new file mode 100644 index 00000000..09301a4e --- /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.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas new file mode 100644 index 00000000..77563107 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas @@ -0,0 +1,865 @@ +unit uAlbaranesClienteController; + +interface + + +uses + SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModuleAlbaranesCliente, uClientesController, + uDetallesAlbaranClienteController, uBizAlbaranesCliente, uBizDireccionesContacto; + +type + IAlbaranesClienteController = interface(IObservador) + ['{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; + function BuscarAlbaranesNormales: IBizAlbaranCliente; + function BuscarAlbaranesDevolucion: IBizAlbaranCliente; + function BuscarPendientes : IBizAlbaranCliente; + function BuscarSinFacturar : IBizAlbaranCliente; + procedure Ver(AAlbaran : IBizAlbaranCliente); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente); + procedure VerDireccionEntrega(AAlbaran : IBizAlbaranCliente); + function Nuevo : IBizAlbaranCliente; + function Anadir(AAlbaran : IBizAlbaranCliente): Boolean; overload; + function AnadirAlbaranDev(AAlbaran : IBizAlbaranCliente) : Boolean; + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranCliente): 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); + procedure Print(AAlbaran : IBizAlbaranCliente); + + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + AAlbaran: IBizAlbaranCliente); + procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranCliente); + procedure RecuperarCliente(AAlbaran: IBizAlbaranCliente); + function CambiarSituacion(AAlbaran : IBizAlbaranCliente; + ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; + AFechaRecibido : TDateTime = 0; + DoPost: Boolean = True) : Boolean; + end; + + TAlbaranesClienteController = class(TObservador, 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 métodos 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; + procedure AsignarID(AAlbaran: IBizAlbaranCliente; const IDNuevo : Integer); + 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranCliente): 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; + function BuscarAlbaranesNormales: IBizAlbaranCliente; + function BuscarAlbaranesDevolucion: IBizAlbaranCliente; + + function BuscarPendientes : IBizAlbaranCliente; + function BuscarSinFacturar : IBizAlbaranCliente; + function Nuevo : IBizAlbaranCliente; + procedure Ver(AAlbaran : IBizAlbaranCliente); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente); + 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); + + function CambiarSituacion(AAlbaran : IBizAlbaranCliente; + ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; + AFechaRecibido : TDateTime = 0; + DoPost: Boolean = True) : Boolean; + + procedure Preview(AAlbaran : IBizAlbaranCliente); + procedure Print(AAlbaran : IBizAlbaranCliente); + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente, + uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, + uBizContactos, uDataTableUtils, uDataModuleUsuarios, + schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente, + uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente, + schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase, + uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, + schPedidosClienteClient_Intf, uDialogUtils, Windows, Forms, Dialogs; + + + +{ TAlbaranesClienteController } + +function TAlbaranesClienteController.Anadir(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 + Anadir(AAlbaran); + AAlbaran.TIPO := CTE_TIPO_ALBARAN_DEV; +end; + +procedure TAlbaranesClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +procedure TAlbaranesClienteController.AsignarID(AAlbaran: IBizAlbaranCliente; const IDNuevo : Integer); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignado'); + + if not Assigned(AAlbaran.Detalles) then + raise Exception.Create ('Detalles de albarán no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(AAlbaran.Detalles, IDNuevo, AAlbaran.EsNuevo); + + if AAlbaran.EsNuevo then + begin + AAlbaran.Edit; + AAlbaran.ID := IDNuevo; + AAlbaran.Post; + end; +end; + +function TAlbaranesClienteController.Buscar(const ID: Integer): IBizAlbaranCliente; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlbaranesClienteController.BuscarAlbaranesDevolucion: IBizAlbaranCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddCondition(fld_AlbaranesClienteIMPORTE_TOTAL, cLess, 0); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarAlbaranesNormales: IBizAlbaranCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddCondition(fld_AlbaranesClienteIMPORTE_TOTAL, cMajorOrEqual, 0); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarTodos: IBizAlbaranCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesClienteController.BuscarPendientes: IBizAlbaranCliente; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_AlbaranesClienteSITUACION + ' = ''' + SITUACION_ALBARAN_SERVIDO + ''''); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarSinFacturar: IBizAlbaranCliente; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_AlbaranesClienteID_FACTURA + ' is null'); + CloseBraket; + 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 ('Albarán no asignado (CambiarSituacion)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + // Validar la situación del albarán + 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 dirección (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 + 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; + +procedure TAlbaranesClienteController.DescartarCambios(AAlbaran: IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + 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 + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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) or (AAlbaran.ID_Cliente = 0) then + // Si hay altas automáticas 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 albarán'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarán'); + + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarán debe tener en su contenido al menos un concepto'); + + //En caso de ser un Albarán no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarán no puede tener un importe total negativo'); + + //En caso de ser una orden de devolución 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 devolución no puede tener un importe total positivo'); + + //Una orden de devolución debe tener relleno el almacén de entrada de material + if (AAlbaran.ID_ALMACEN < 0) or (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar el almacén de entrada de esta orden de devolución'); + + //Ponemos la fecha del albaran de devolución como fecha de envio para que se contabilice según dicha fecha + AAlbaran.Edit; + AAlbaran.FECHA_ENVIO := AAlbaran.FECHA_ALBARAN; + AAlbaran.Post; + end; + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := dmUsuarios.LoginInfo.Usuario; + + 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 + Result := False; + 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 envío del albarán') + end; + if (ASituacion = SITUACION_ALBARAN_SERVIDO) then + begin + if (EsFechaVacia(AFechaEnvio)) then + raise Exception.Create('Hay que indicar la fecha de envío del albarán'); + if (EsFechaVacia(AFechaRecibido)) then + raise Exception.Create('Hay que indicar la fecha de recepción del albarán'); + if (AFechaRecibido < AFechaEnvio) then + raise Exception.Create('La fecha de recepción y firma del albarán por parte ' + + 'del cliente no puede ser anterior a la fecha de envio del material del albarán'); + end; + end; + Result := True; +end; + +procedure TAlbaranesClienteController.Ver(AAlbaran: IBizAlbaranCliente); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlbaran); + + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranCliente', IEditorAlbaranCliente, AEditor) + else + CreateEditor('EditorAlbaranDevCliente', IEditorAlbaranDevCliente, AEditor); + + with (AEditor as IEditorAlbaranCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaran := AAlbaran; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerDireccionEntrega( + AAlbaran: IBizAlbaranCliente); +var + AEditor : IEditorDireccionEntregaAlbaranCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + //RecuperarObjetos(AAlbaran); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaAlbaranCliente', IEditorDireccionEntregaAlbaranCliente, AEditor); + + with (AEditor as IEditorDireccionEntregaAlbaranCliente) do + begin + Albaran := AAlbaran; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente); +var + AEditor : IEditorAlbaranesCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesCliente', IEditorAlbaranesCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente); +var + AEditor : IEditorAlbaranesDevCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesDevCliente', IEditorAlbaranesDevCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + 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 albarán 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); + try + with AEditor do + begin + Controller := Self; + Albaranes := AAlbaran; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := AlbaranesClienteSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TAlbaranesClienteController.Eliminar(AAlbaran: IBizAlbaranCliente): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.Delete; + AAlbaran.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + 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 + AAlbaran.Edit; + try + AAlbaran.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AAlbaran.Post; + end; + 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); + CopyDataTable(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesClienteController.FiltrarEmpresa( + AAlbaran: IBizAlbaranCliente); +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_AlbaranesClienteID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + end; +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; +var + IDNuevo: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + try + if (AAlbaran.EsNuevo) then + IDNuevo := FDataModule.GetNextID(AAlbaran.DataTable.LogicalName) + else + IDNuevo := AAlbaran.ID; + + AsignarID(AAlbaran, IDNuevo); + AAlbaran.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlbaranesClienteController.Nuevo: IBizAlbaranCliente; +var + AAlbaran : IBizAlbaranCliente; +begin + AAlbaran := FDataModule.NewItem; + FiltrarEmpresa(AAlbaran); + AAlbaran.DataTable.Active := True; + AAlbaran.Insert; + Result := AAlbaran; +end; + +procedure TAlbaranesClienteController.QuitarDireccionEnvio( + AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePERSONA_CONTACTO).Clear; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.Preview(AAlbaran.ID); + finally + AReportController := NIL; + end; +end; + +procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.Print(AAlbaran.ID); + finally + AReportController := NIL; + end; +end; + +function TAlbaranesClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TAlbaranesClienteController.GetDetallesController: IDetallesAlbaranClienteController; +begin + Result := FDetallesController; +end; + +end. 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 00000000..8fb4ab6d --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas @@ -0,0 +1,104 @@ +unit uAlbaranesClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport, + uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController, + uBizAlbaranesCliente; + +type + IAlbaranesClienteReportController = interface + ['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}'] + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + TAlbaranesClienteReportController = class(TInterfacedObject, IAlbaranesClienteReportController) + private + FDataModule : IDataModuleAlbaranesClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview, + uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls; + +{ TAlbaranesClienteReportController } + +constructor TAlbaranesClienteReportController.Create; +begin + 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.Preview(const AID : integer); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TAlbaranesClienteReportController.Print(const AID : integer); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +end; + +end. 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 00000000..edc6fa96 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas @@ -0,0 +1,47 @@ +unit uArticulosAlbaranClienteController; + +interface + +uses + uDADataTable, 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); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. 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 00000000..801db593 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas @@ -0,0 +1,117 @@ +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); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + end; + + TDetallesAlbaranClienteController = class(TControllerDetallesArticulos, IDetallesAlbaranClienteController) + private + FDataModule : IDataModuleAlbaranesCliente; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Dialogs, Variants, uControllerDetallesBase, uControllerDetallesDTO, 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); + ShowMessage('Se han actualizado los descuentos para el cliente seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + AArticulos := (FArticulosController as IArticulosAlbaranClienteController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este albarán de cliente', True); + Add(ADetalles, AArticulos); + 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; + +constructor TDetallesAlbaranClienteController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +destructor TDetallesAlbaranClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranClienteController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +end; + +procedure TDetallesAlbaranClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE + 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 00000000..63e51e84 --- /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.dpk b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk new file mode 100644 index 00000000..3a66cd45 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk @@ -0,0 +1,41 @@ +package AlbaranesCliente_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + AlbaranesCliente_model; + +contains + uDataModuleAlbaranesCliente in 'uDataModuleAlbaranesCliente.pas' {DataModuleAlbaranesCliente}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm new file mode 100644 index 00000000..4ced4cf6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm @@ -0,0 +1,960 @@ +object DataModuleAlbaranesCliente: TDataModuleAlbaranesCliente + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 373 + Width = 518 + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 40 + Top = 8 + end + object ROMessage: TROBinMessage + Left = 40 + Top = 60 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvAlbaranesCliente' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 112 + end + object DABinAdapter: TDABINAdapter + Left = 40 + Top = 168 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 40 + Top = 240 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 296 + end + object tbl_AlbaranesCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha albar'#225'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. pedido cliente' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. factura cliente' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del cliente' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha prevista de envio' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de env'#237'o' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de recepci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesCliente' + IndexDefs = <> + Left = 232 + Top = 136 + end + object ds_AlbaranesCliente: TDADataSource + DataTable = tbl_AlbaranesCliente + Left = 232 + Top = 80 + end + object tbl_AlbaranesCliente_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = 41 + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesCliente_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 = 392 + Top = 136 + end + object ds_AlbaranesCliente_Detalles: TDADataSource + DataTable = tbl_AlbaranesCliente_Detalles + Left = 392 + Top = 80 + 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 00000000..8ea07ce6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas @@ -0,0 +1,160 @@ +unit uDataModuleAlbaranesCliente; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + uDAClientDataModule, uROTypes, + uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente, + uIDataModuleAlbaranesClienteReport; + +type + TDataModuleAlbaranesCliente = class(TDAClientDataModule, IDataModuleAlbaranesCliente, IDataModuleAlbaranesClienteReport) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + tbl_AlbaranesCliente: TDACDSDataTable; + ds_AlbaranesCliente: TDADataSource; + tbl_AlbaranesCliente_Detalles: TDACDSDataTable; + ds_AlbaranesCliente_Detalles: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesAlbaranCliente; + + protected + procedure AsignarClaseNegocio(var APedido: TDACDSDataTable); virtual; + + public + function GetItems : IBizAlbaranCliente; virtual; + function GetItem(const ID : Integer) : IBizAlbaranCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlbaranCliente; + + // Report + function GetReport(const AID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDAInterfaces, uDataModuleConexion, + uDataTableUtils, schAlbaranesClienteClient_Intf, uBizContactos; + +{ TdmAlbaranesCliente } + +procedure TDataModuleAlbaranesCliente.AsignarClaseNegocio(var APedido: TDACDSDataTable); +begin + APedido.BusinessRulesID := BIZ_CLIENT_ALBARAN_CLIENTE; +end; + +procedure TDataModuleAlbaranesCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlbaranesCliente.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_AlbaranesCliente then + aGeneratorName := 'GEN_ALBARANES_CLI_ID'; + + if DataSetName = nme_AlbaranesCliente_Detalles then + aGeneratorName := 'GEN_ALBARANES_CLI_DETALLES_ID'; + + Result := (RORemoteService as IsrvAlbaranesCliente).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleAlbaranesCliente.GetReport(const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(AID) +end; + +function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesCliente._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleAlbaranesCliente._GetDetalles: IBizDetallesAlbaranCliente; +var + ADetalles : TDACDSDataTable; +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.GetItem(const ID: Integer): IBizAlbaranCliente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_AlbaranesClienteID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetItems: IBizAlbaranCliente; +var + APedido : TDACDSDataTable; +begin + ShowHourglassCursor; + try + APedido := _CloneDataTable(tbl_AlbaranesCliente); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + APedido.FieldByName(fld_AlbaranesClienteREFERENCIA).ServerAutoRefresh := TRUE; + + AsignarClaseNegocio(APedido); + + with TBizAlbaranCliente(APedido.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (APedido 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 00000000..a6b90fa6 --- /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.dpk b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk new file mode 100644 index 00000000..eae8b2a6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk @@ -0,0 +1,49 @@ +package AlbaranesCliente_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 + DataAbstract_D10, + Base, + Usuarios, + Empresas_controller, + Contactos_model, + GUIBase, + rtl, + dbrtl, + vcl, + dsnap, + vcldb, + adortl; + +contains + uIDataModuleAlbaranesCliente in 'Data\uIDataModuleAlbaranesCliente.pas', + uBizDetallesAlbaranCliente in 'uBizDetallesAlbaranCliente.pas', + uBizAlbaranesCliente in 'uBizAlbaranesCliente.pas', + uIDataModuleAlbaranesClienteReport in 'Data\uIDataModuleAlbaranesClienteReport.pas', + schAlbaranesClienteClient_Intf in 'schAlbaranesClienteClient_Intf.pas', + schAlbaranesClienteServer_Intf in 'schAlbaranesClienteServer_Intf.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas new file mode 100644 index 00000000..df11d137 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlbaranesCliente; + +interface + +uses + uBizAlbaranesCliente; + +type + IDataModuleAlbaranesCliente = interface + ['{81932348-9595-45AC-AFC9-5A8983B4A3A8}'] + function GetItems: IBizAlbaranCliente; + function GetItem(const ID : Integer) : IBizAlbaranCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlbaranCliente; + end; + +implementation + +end. 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 00000000..5d21498b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleAlbaranesClienteReport; + +interface + +uses + uROTypes; + +type + IDataModuleAlbaranesClienteReport = interface + ['{42C55204-5AB9-403E-8385-1A62B02D8234}'] + function GetReport(const AID: Integer): Binary; + end; + +implementation + +end. 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 00000000..8fd61ed1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas @@ -0,0 +1,2126 @@ +unit schAlbaranesClienteClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_DarReferencia = '{590A1246-5E78-48C9-B8AD-032D7A61111D}'; + RID_AlbaranesCliente = '{0EA92BE8-055B-4966-89A1-FCEB192DA37F}'; + RID_AlbaranesCliente_Detalles = '{5184DDF5-9E5A-4260-9622-2E34053ECF9E}'; + RID_AlbaranesCliente_Detalles_Refresh = '{34915424-0535-4F25-9E25-99DDB0399852}'; + RID_AlbaranesCliente_Refresh = '{B5BBE37C-F1CB-46BD-8496-99260FF7EDE3}'; + + { Data table names } + nme_DarReferencia = 'DarReferencia'; + nme_AlbaranesCliente = 'AlbaranesCliente'; + nme_AlbaranesCliente_Detalles = 'AlbaranesCliente_Detalles'; + nme_AlbaranesCliente_Detalles_Refresh = 'AlbaranesCliente_Detalles_Refresh'; + nme_AlbaranesCliente_Refresh = 'AlbaranesCliente_Refresh'; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { AlbaranesCliente fields } + fld_AlbaranesClienteID = 'ID'; + fld_AlbaranesClienteID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesClienteID_CLIENTE = 'ID_CLIENTE'; + fld_AlbaranesClienteREFERENCIA = 'REFERENCIA'; + fld_AlbaranesClienteFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesClienteID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesClienteTIPO = 'TIPO'; + fld_AlbaranesClienteSITUACION = 'SITUACION'; + fld_AlbaranesClienteID_ALMACEN = 'ID_ALMACEN'; + fld_AlbaranesClienteNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_AlbaranesClienteID_FACTURA = 'ID_FACTURA'; + fld_AlbaranesClienteREF_PEDIDO = 'REF_PEDIDO'; + fld_AlbaranesClienteCALLE = 'CALLE'; + fld_AlbaranesClienteREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesClienteCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesClientePOBLACION = 'POBLACION'; + fld_AlbaranesClientePROVINCIA = 'PROVINCIA'; + fld_AlbaranesClientePERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesClienteTELEFONO = 'TELEFONO'; + fld_AlbaranesClienteBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesClienteIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesClienteIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesClienteDESCUENTO = 'DESCUENTO'; + fld_AlbaranesClienteIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + 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_AlbaranesClienteNOMBRE = 'NOMBRE'; + 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_AlbaranesClienteREFERENCIA = 3; + idx_AlbaranesClienteFECHA_ALBARAN = 4; + idx_AlbaranesClienteID_PEDIDO = 5; + idx_AlbaranesClienteTIPO = 6; + idx_AlbaranesClienteSITUACION = 7; + idx_AlbaranesClienteID_ALMACEN = 8; + idx_AlbaranesClienteNOMBRE_ALMACEN = 9; + idx_AlbaranesClienteID_FACTURA = 10; + idx_AlbaranesClienteREF_PEDIDO = 11; + idx_AlbaranesClienteCALLE = 12; + idx_AlbaranesClienteREF_FACTURA = 13; + idx_AlbaranesClienteCODIGO_POSTAL = 14; + idx_AlbaranesClientePOBLACION = 15; + idx_AlbaranesClientePROVINCIA = 16; + idx_AlbaranesClientePERSONA_CONTACTO = 17; + idx_AlbaranesClienteTELEFONO = 18; + idx_AlbaranesClienteBASE_IMPONIBLE = 19; + idx_AlbaranesClienteIMPORTE_NETO = 20; + idx_AlbaranesClienteIMPORTE_PORTE = 21; + idx_AlbaranesClienteDESCUENTO = 22; + idx_AlbaranesClienteIMPORTE_DESCUENTO = 23; + idx_AlbaranesClienteIVA = 24; + idx_AlbaranesClienteIMPORTE_IVA = 25; + idx_AlbaranesClienteIMPORTE_TOTAL = 26; + idx_AlbaranesClienteOBSERVACIONES = 27; + idx_AlbaranesClienteINCIDENCIAS = 28; + idx_AlbaranesClienteINCIDENCIAS_ACTIVAS = 29; + idx_AlbaranesClienteFECHA_ALTA = 30; + idx_AlbaranesClienteFECHA_MODIFICACION = 31; + idx_AlbaranesClienteUSUARIO = 32; + idx_AlbaranesClienteNOMBRE = 33; + idx_AlbaranesClienteID_FORMA_PAGO = 34; + idx_AlbaranesClienteFECHA_PREVISTA_ENVIO = 35; + idx_AlbaranesClienteFECHA_ENVIO = 36; + idx_AlbaranesClienteFECHA_RECEPCION = 37; + + { 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_DetallesREFERENCIA = 'REFERENCIA'; + fld_AlbaranesCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesCliente_DetallesCONCEPTO = 'CONCEPTO'; + fld_AlbaranesCliente_DetallesCANTIDAD = 'CANTIDAD'; + fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_AlbaranesCliente_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesCliente_DetallesVISIBLE = 'VISIBLE'; + fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { AlbaranesCliente_Detalles field indexes } + idx_AlbaranesCliente_DetallesID = 0; + idx_AlbaranesCliente_DetallesID_ALBARAN = 1; + idx_AlbaranesCliente_DetallesPOSICION = 2; + idx_AlbaranesCliente_DetallesTIPO_DETALLE = 3; + idx_AlbaranesCliente_DetallesREFERENCIA = 4; + idx_AlbaranesCliente_DetallesID_ARTICULO = 5; + idx_AlbaranesCliente_DetallesCONCEPTO = 6; + idx_AlbaranesCliente_DetallesCANTIDAD = 7; + idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD = 8; + idx_AlbaranesCliente_DetallesIMPORTE_TOTAL = 9; + idx_AlbaranesCliente_DetallesDESCUENTO = 10; + idx_AlbaranesCliente_DetallesIMPORTE_PORTE = 11; + idx_AlbaranesCliente_DetallesVISIBLE = 12; + idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 13; + + { AlbaranesCliente_Detalles_Refresh fields } + fld_AlbaranesCliente_Detalles_RefreshID = 'ID'; + fld_AlbaranesCliente_Detalles_RefreshID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesCliente_Detalles_RefreshPOSICION = 'POSICION'; + fld_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_AlbaranesCliente_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_AlbaranesCliente_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesCliente_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_AlbaranesCliente_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesCliente_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesCliente_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { AlbaranesCliente_Detalles_Refresh field indexes } + idx_AlbaranesCliente_Detalles_RefreshID = 0; + idx_AlbaranesCliente_Detalles_RefreshID_ALBARAN = 1; + idx_AlbaranesCliente_Detalles_RefreshPOSICION = 2; + idx_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE = 3; + idx_AlbaranesCliente_Detalles_RefreshREFERENCIA = 4; + idx_AlbaranesCliente_Detalles_RefreshID_ARTICULO = 5; + idx_AlbaranesCliente_Detalles_RefreshCONCEPTO = 6; + idx_AlbaranesCliente_Detalles_RefreshCANTIDAD = 7; + idx_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD = 8; + idx_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL = 9; + idx_AlbaranesCliente_Detalles_RefreshDESCUENTO = 10; + idx_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE = 11; + idx_AlbaranesCliente_Detalles_RefreshVISIBLE = 12; + idx_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { AlbaranesCliente_Refresh fields } + fld_AlbaranesCliente_RefreshID = 'ID'; + fld_AlbaranesCliente_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesCliente_RefreshID_CLIENTE = 'ID_CLIENTE'; + fld_AlbaranesCliente_RefreshREFERENCIA = 'REFERENCIA'; + fld_AlbaranesCliente_RefreshFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesCliente_RefreshID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesCliente_RefreshTIPO = 'TIPO'; + fld_AlbaranesCliente_RefreshSITUACION = 'SITUACION'; + fld_AlbaranesCliente_RefreshID_ALMACEN = 'ID_ALMACEN'; + fld_AlbaranesCliente_RefreshNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_AlbaranesCliente_RefreshID_FACTURA = 'ID_FACTURA'; + fld_AlbaranesCliente_RefreshREF_PEDIDO = 'REF_PEDIDO'; + fld_AlbaranesCliente_RefreshCALLE = 'CALLE'; + fld_AlbaranesCliente_RefreshREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesCliente_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesCliente_RefreshPOBLACION = 'POBLACION'; + fld_AlbaranesCliente_RefreshPROVINCIA = 'PROVINCIA'; + fld_AlbaranesCliente_RefreshPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesCliente_RefreshTELEFONO = 'TELEFONO'; + fld_AlbaranesCliente_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesCliente_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesCliente_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesCliente_RefreshDESCUENTO = 'DESCUENTO'; + fld_AlbaranesCliente_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_AlbaranesCliente_RefreshIVA = 'IVA'; + fld_AlbaranesCliente_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_AlbaranesCliente_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesCliente_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_AlbaranesCliente_RefreshINCIDENCIAS = 'INCIDENCIAS'; + fld_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_AlbaranesCliente_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_AlbaranesCliente_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlbaranesCliente_RefreshUSUARIO = 'USUARIO'; + fld_AlbaranesCliente_RefreshNOMBRE = 'NOMBRE'; + fld_AlbaranesCliente_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO = 'FECHA_PREVISTA_ENVIO'; + fld_AlbaranesCliente_RefreshFECHA_ENVIO = 'FECHA_ENVIO'; + fld_AlbaranesCliente_RefreshFECHA_RECEPCION = 'FECHA_RECEPCION'; + + { AlbaranesCliente_Refresh field indexes } + idx_AlbaranesCliente_RefreshID = 0; + idx_AlbaranesCliente_RefreshID_EMPRESA = 1; + idx_AlbaranesCliente_RefreshID_CLIENTE = 2; + idx_AlbaranesCliente_RefreshREFERENCIA = 3; + idx_AlbaranesCliente_RefreshFECHA_ALBARAN = 4; + idx_AlbaranesCliente_RefreshID_PEDIDO = 5; + idx_AlbaranesCliente_RefreshTIPO = 6; + idx_AlbaranesCliente_RefreshSITUACION = 7; + idx_AlbaranesCliente_RefreshID_ALMACEN = 8; + idx_AlbaranesCliente_RefreshNOMBRE_ALMACEN = 9; + idx_AlbaranesCliente_RefreshID_FACTURA = 10; + idx_AlbaranesCliente_RefreshREF_PEDIDO = 11; + idx_AlbaranesCliente_RefreshCALLE = 12; + idx_AlbaranesCliente_RefreshREF_FACTURA = 13; + idx_AlbaranesCliente_RefreshCODIGO_POSTAL = 14; + idx_AlbaranesCliente_RefreshPOBLACION = 15; + idx_AlbaranesCliente_RefreshPROVINCIA = 16; + idx_AlbaranesCliente_RefreshPERSONA_CONTACTO = 17; + idx_AlbaranesCliente_RefreshTELEFONO = 18; + idx_AlbaranesCliente_RefreshBASE_IMPONIBLE = 19; + idx_AlbaranesCliente_RefreshIMPORTE_NETO = 20; + idx_AlbaranesCliente_RefreshIMPORTE_PORTE = 21; + idx_AlbaranesCliente_RefreshDESCUENTO = 22; + idx_AlbaranesCliente_RefreshIMPORTE_DESCUENTO = 23; + idx_AlbaranesCliente_RefreshIVA = 24; + idx_AlbaranesCliente_RefreshIMPORTE_IVA = 25; + idx_AlbaranesCliente_RefreshIMPORTE_TOTAL = 26; + idx_AlbaranesCliente_RefreshOBSERVACIONES = 27; + idx_AlbaranesCliente_RefreshINCIDENCIAS = 28; + idx_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS = 29; + idx_AlbaranesCliente_RefreshFECHA_ALTA = 30; + idx_AlbaranesCliente_RefreshFECHA_MODIFICACION = 31; + idx_AlbaranesCliente_RefreshUSUARIO = 32; + idx_AlbaranesCliente_RefreshNOMBRE = 33; + idx_AlbaranesCliente_RefreshID_FORMA_PAGO = 34; + idx_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO = 35; + idx_AlbaranesCliente_RefreshFECHA_ENVIO = 36; + idx_AlbaranesCliente_RefreshFECHA_RECEPCION = 37; + +type + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{D4EFE1A1-72D1-4902-A125-742D749115A9}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente } + IAlbaranesCliente = interface(IDAStronglyTypedDataTable) + ['{C88E52AA-F397-4FE2-A28C-6DAA7A6DE98B}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetREF_PEDIDOValue: String; + procedure SetREF_PEDIDOValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetFECHA_PREVISTA_ENVIOValue: DateTime; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_RECEPCIONValue: DateTime; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + end; + + { TAlbaranesClienteDataTableRules } + TAlbaranesClienteDataTableRules = class(TDADataTableRules, IAlbaranesCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_PEDIDOValue: String; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_Detalles } + IAlbaranesCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{DC0799E6-7893-45C8-8554-55D2B78A451A}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesCliente_DetallesDataTableRules } + TAlbaranesCliente_DetallesDataTableRules = class(TDADataTableRules, IAlbaranesCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_Detalles_Refresh } + IAlbaranesCliente_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{AA29A021-C937-4FE8-B6C1-3A4CACD4A7E8}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesCliente_Detalles_RefreshDataTableRules } + TAlbaranesCliente_Detalles_RefreshDataTableRules = class(TDADataTableRules, IAlbaranesCliente_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_Refresh } + IAlbaranesCliente_Refresh = interface(IDAStronglyTypedDataTable) + ['{1D148A3E-FF60-47FB-9781-8E5D0A365697}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetREF_PEDIDOValue: String; + procedure SetREF_PEDIDOValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetFECHA_PREVISTA_ENVIOValue: DateTime; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_RECEPCIONValue: DateTime; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + end; + + { TAlbaranesCliente_RefreshDataTableRules } + TAlbaranesCliente_RefreshDataTableRules = class(TDADataTableRules, IAlbaranesCliente_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_PEDIDOValue: String; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TAlbaranesClienteDataTableRules } +constructor TAlbaranesClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesClienteDataTableRules.Destroy; +begin + inherited; +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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].AsString := aValue.Text; +end; + +function TAlbaranesClienteDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].AsString := aValue.Text; +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.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_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.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.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.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.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_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_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; + + +{ 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.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.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.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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].AsInteger := aValue; +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_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.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.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.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.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; + + +{ TAlbaranesCliente_Detalles_RefreshDataTableRules } +constructor TAlbaranesCliente_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesCliente_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE].AsFloat; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE].AsFloat := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesCliente_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TAlbaranesCliente_RefreshDataTableRules } +constructor TAlbaranesCliente_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesCliente_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_EMPRESA].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_CLIENTE].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_CLIENTE].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshREFERENCIA].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshREFERENCIA].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_ALBARANValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ALBARAN].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ALBARAN].AsDateTime := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshTIPO].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshTIPO].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshSITUACION].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshSITUACION].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_ALMACEN].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_ALMACEN].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshNOMBRE_ALMACEN].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshNOMBRE_ALMACEN].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_FACTURA].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetREF_PEDIDOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshREF_PEDIDO].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetREF_PEDIDOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshREF_PEDIDO].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshCALLE].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshCALLE].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetREF_FACTURAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshREF_FACTURA].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetREF_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshPOBLACION].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshPOBLACION].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshPROVINCIA].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshPROVINCIA].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshPERSONA_CONTACTO].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshPERSONA_CONTACTO].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshTELEFONO].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshTELEFONO].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshDESCUENTO].AsFloat; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIVA].AsFloat; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIVA].AsFloat := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesCliente_RefreshOBSERVACIONES].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesCliente_RefreshINCIDENCIAS].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshINCIDENCIAS].AsString := aValue.Text; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshUSUARIO].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshUSUARIO].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshNOMBRE].AsString; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshNOMBRE].AsString := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshID_FORMA_PAGO].AsInteger := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO].AsDateTime := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ENVIO].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_ENVIO].AsDateTime := aValue; +end; + +function TAlbaranesCliente_RefreshDataTableRules.GetFECHA_RECEPCIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_RECEPCION].AsDateTime; +end; + +procedure TAlbaranesCliente_RefreshDataTableRules.SetFECHA_RECEPCIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesCliente_RefreshFECHA_RECEPCION].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente, TAlbaranesClienteDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente_Detalles, TAlbaranesCliente_DetallesDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente_Detalles_Refresh, TAlbaranesCliente_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente_Refresh, TAlbaranesCliente_RefreshDataTableRules); + +end. 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 00000000..13f4dd60 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas @@ -0,0 +1,2519 @@ +unit schAlbaranesClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_DarReferenciaDelta = '{9B703BFE-242D-4740-9A37-03C081F04EFD}'; + RID_AlbaranesClienteDelta = '{32F0DEA0-BCFD-411D-BDEF-A299146842C0}'; + RID_AlbaranesCliente_DetallesDelta = '{3671C82E-7B99-4933-A18A-D11907979114}'; + RID_AlbaranesCliente_Detalles_RefreshDelta = '{514E893B-716C-45E1-8064-49DA981DC228}'; + RID_AlbaranesCliente_RefreshDelta = '{41EE8ACF-4199-47CA-A562-705466E472D6}'; + +type + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{9B703BFE-242D-4740-9A37-03C081F04EFD}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesClienteDelta } + IAlbaranesClienteDelta = interface(IAlbaranesCliente) + ['{32F0DEA0-BCFD-411D-BDEF-A299146842C0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldID_PEDIDOValue : Integer; + function GetOldTIPOValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_PEDIDOValue : String; + function GetOldCALLEValue : String; + function GetOldREF_FACTURAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : 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 GetOldNOMBREValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + 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_FACTURA : Integer read GetOldID_FACTURAValue; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + 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 OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + 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 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 OldNOMBRE : String read GetOldNOMBREValue; + 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 + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_PEDIDOValue: String; virtual; + function GetOldREF_PEDIDOValue: String; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + function GetOldFECHA_RECEPCIONValue: DateTime; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property REF_PEDIDO : String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO : DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property FECHA_RECEPCION : DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + property OldFECHA_RECEPCION : DateTime read GetOldFECHA_RECEPCIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_DetallesDelta } + IAlbaranesCliente_DetallesDelta = interface(IAlbaranesCliente_Detalles) + ['{3671C82E-7B99-4933-A18A-D11907979114}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesCliente_DetallesBusinessProcessorRules } + TAlbaranesCliente_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesCliente_Detalles, IAlbaranesCliente_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_Detalles_RefreshDelta } + IAlbaranesCliente_Detalles_RefreshDelta = interface(IAlbaranesCliente_Detalles_Refresh) + ['{514E893B-716C-45E1-8064-49DA981DC228}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Float; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules } + TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesCliente_Detalles_Refresh, IAlbaranesCliente_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_RefreshDelta } + IAlbaranesCliente_RefreshDelta = interface(IAlbaranesCliente_Refresh) + ['{41EE8ACF-4199-47CA-A562-705466E472D6}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldID_PEDIDOValue : Integer; + function GetOldTIPOValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_PEDIDOValue : String; + function GetOldCALLEValue : String; + function GetOldREF_FACTURAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : 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 GetOldNOMBREValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + 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_FACTURA : Integer read GetOldID_FACTURAValue; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + 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 OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + 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 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 OldNOMBRE : String read GetOldNOMBREValue; + 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; + + { TAlbaranesCliente_RefreshBusinessProcessorRules } + TAlbaranesCliente_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesCliente_Refresh, IAlbaranesCliente_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_PEDIDOValue: String; virtual; + function GetOldREF_PEDIDOValue: String; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + function GetOldFECHA_RECEPCIONValue: DateTime; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property REF_PEDIDO : String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property FECHA_PREVISTA_ENVIO : DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property FECHA_RECEPCION : DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + property OldFECHA_RECEPCION : DateTime read GetOldFECHA_RECEPCIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TAlbaranesClienteBusinessProcessorRules } +constructor TAlbaranesClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_EMPRESA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_CLIENTE]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREFERENCIA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALBARAN]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_PEDIDO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTIPO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteSITUACION]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_ALMACEN]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_FACTURA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_PEDIDO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_PEDIDOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCALLE]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_FACTURA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCODIGO_POSTAL]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePOBLACION]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePROVINCIA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePERSONA_CONTACTO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTELEFONO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_NETO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_PORTE]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteDESCUENTO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIVA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_IVA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteOBSERVACIONES]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES] := aValue.Text; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS] := aValue.Text; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALTA]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteUSUARIO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FORMA_PAGO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := 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; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ENVIO]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO] := aValue; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_RECEPCION]; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_RECEPCIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesPOSICION]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := 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; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesVISIBLE]; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE] := aValue; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + + +{ TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules } +constructor TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshID]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ALBARAN]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ALBARAN]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ALBARAN] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshPOSICION]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshPOSICION]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshPOSICION] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ARTICULO]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ARTICULO]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshCONCEPTO]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshCONCEPTO]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshCANTIDAD]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshCANTIDAD]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshDESCUENTO]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshDESCUENTO]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshVISIBLE]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshVISIBLE]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshVISIBLE] := aValue; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TAlbaranesCliente_RefreshBusinessProcessorRules } +constructor TAlbaranesCliente_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesCliente_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_EMPRESA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_EMPRESA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_EMPRESA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_CLIENTE]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_CLIENTE]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_CLIENTE] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREFERENCIA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshREFERENCIA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREFERENCIA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ALBARAN]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_ALBARAN]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ALBARAN] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_PEDIDO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_PEDIDO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_PEDIDO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshTIPO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshTIPO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshTIPO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshSITUACION]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshSITUACION]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshSITUACION] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_ALMACEN]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_ALMACEN]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_ALMACEN] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshNOMBRE_ALMACEN]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshNOMBRE_ALMACEN]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshNOMBRE_ALMACEN] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_FACTURA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_FACTURA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_FACTURA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREF_PEDIDO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshREF_PEDIDO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetREF_PEDIDOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREF_PEDIDO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshCALLE]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshCALLE]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshCALLE] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREF_FACTURA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshREF_FACTURA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshREF_FACTURA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshCODIGO_POSTAL]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshCODIGO_POSTAL]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshCODIGO_POSTAL] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPOBLACION]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshPOBLACION]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPOBLACION] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPROVINCIA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshPROVINCIA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPROVINCIA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPERSONA_CONTACTO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshPERSONA_CONTACTO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshPERSONA_CONTACTO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshTELEFONO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshTELEFONO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshTELEFONO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshBASE_IMPONIBLE]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshBASE_IMPONIBLE]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_NETO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIMPORTE_NETO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_NETO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_PORTE]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIMPORTE_PORTE]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshDESCUENTO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshDESCUENTO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshDESCUENTO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_DESCUENTO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIVA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIVA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIVA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_IVA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIMPORTE_IVA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_IVA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_TOTAL]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshIMPORTE_TOTAL]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshOBSERVACIONES]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshOBSERVACIONES]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS] := aValue.Text; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ALTA]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_ALTA]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ALTA] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_MODIFICACION]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_MODIFICACION]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshUSUARIO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshUSUARIO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshUSUARIO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshNOMBRE]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshNOMBRE]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshNOMBRE] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_FORMA_PAGO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshID_FORMA_PAGO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshID_FORMA_PAGO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_PREVISTA_ENVIO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ENVIO]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_ENVIO]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_ENVIO] := aValue; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_RECEPCION]; +end; + +function TAlbaranesCliente_RefreshBusinessProcessorRules.GetOldFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_RefreshFECHA_RECEPCION]; +end; + +procedure TAlbaranesCliente_RefreshBusinessProcessorRules.SetFECHA_RECEPCIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_RefreshFECHA_RECEPCION] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesClienteDelta, TAlbaranesClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesCliente_DetallesDelta, TAlbaranesCliente_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesCliente_Detalles_RefreshDelta, TAlbaranesCliente_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesCliente_RefreshDelta, TAlbaranesCliente_RefreshBusinessProcessorRules); + +end. 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 00000000..9f0cf889 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas @@ -0,0 +1,85 @@ +unit uBizAlbaranClienteServer; + +interface + +uses + schFacturasClienteServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_ALBARAN_CLIENTE = 'Server.AlbaranCliente'; + REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; + REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; + +type + TBizAlbaranClienteServer = class(TFacturasClienteBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schAlbaranesClienteClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizFacturasClienteServer } + +procedure TBizAlbaranClienteServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + CodigoReferencia: String; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_AlbaranesClienteREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]; + if (aChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] < 0) then + CodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + CodigoReferencia := REF_ALBARANES_CLIENTE; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'ID_EMPRESA'], [CodigoReferencia, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_CLIENTE, TBizAlbaranClienteServer); + +end. 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 00000000..c2e536c9 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.pas @@ -0,0 +1,317 @@ +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); + + 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; + +{ 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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_ALBARAN := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; + SITUACION := SITUACION_ALBARAN_PENDIENTE; + REFERENCIA := ''; + TIPO := CTE_TIPO_ALBARAN; + // ALMACÉN PUESTO A CAPÓN Y PROVISIONAL + ID_ALMACEN := 2; +end; + +procedure TBizAlbaranCliente.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizAlbaranCliente.GetDetalles: IBizDetallesAlbaranCliente; +begin + Result := FDetalles; +end; + +procedure TBizAlbaranCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresAlbaranNuevo; +end; + +procedure TBizAlbaranCliente.SetCliente(AValue: IBizCliente); +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 + DataTable.Edit; + ID_CLIENTE := FCliente.ID; + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + 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.pas b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas new file mode 100644 index 00000000..b68e3793 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas @@ -0,0 +1,50 @@ +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) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizDetallesAlbaranCliente } + +uses + uDataTableUtils; + + +constructor TBizDetallesAlbaranCliente.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesAlbaranCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +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 00000000..82d7576f --- /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.dpk b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk new file mode 100644 index 00000000..ecb3fd3b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk @@ -0,0 +1,42 @@ +package AlbaranesCliente_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + AlbaranesCliente_controller, + AlbaranesCliente_view; + +contains + uPluginAlbaranesCliente in 'uPluginAlbaranesCliente.pas' {PluginAlbaranesCliente}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm new file mode 100644 index 00000000..5910a3ad --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm @@ -0,0 +1,516 @@ +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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000003934944415478DAB5946B6C536518 + C77F675D2783B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B2285131 + 9068FCA0805C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD432332 + 18B22801A96CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFF + DFFF73935455E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484 + ABFAAA99FDD5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE + 85AF8F1C7F304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7 + BFD3ACE97307AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7 + F66145B99B0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D9895877 + 7D39279A7E898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0B + A86F3D8FB3E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C + 9C815C3B8F6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD81897 + 02D7A73BC93E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F + 282307430C3F03BD734A884B417238C036E70E56867F273829EA3F2515CB9385 + 0C2FB88A758D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E37 + 3DE50E66F75FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D + 0B7E731910BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1 + A46970C32A2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858 + F46847C79DD0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F8 + 3DEE0805E398F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D + 60F982E55C3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BD + B9323563B4D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4 + C443523A64BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B73 + 2E2CDA2B4A561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911 + E0DA9AF4FE2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5 + 421075543CA7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301 + BD62F2F7C023769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC + 287A429F88334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73B + A7F7AF11C857A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669D + A7F7EB63EA6F8A0E921A675CAE400000000049454E44AE426082} + 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' + ImageIndex = 1 + OnExecute = actAlbaranesDevClienteExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Ventas' + object AlbaranesdeCliente1: TMenuItem + Tag = 104 + Action = actAlbaranesCliente + end + object Ordenesdedevolucin1: TMenuItem + Tag = 104 + 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> + 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> + 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 00000000..a6290f93 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.pas @@ -0,0 +1,88 @@ +unit uPluginAlbaranesCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCAlbaranesCliente = interface(IInterface) + ['{1F0B5F6C-814F-423C-B15A-5C4591626008}'] + end; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uAlbaranesClienteController, uBizAlbaranesCliente, uAlbaranesClienteViewRegister; + +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; + +constructor TPluginAlbaranesCliente.Create(AOwner: TComponent); +begin + inherited; + 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.dfm b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm new file mode 100644 index 00000000..de3bf075 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm @@ -0,0 +1,1123 @@ +object RptAlbaranesCliente: TRptAlbaranesCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'SELECT'#10' V_ALBARANES_CLIENTE.ID,'#10' V_ALBARANES_CLIENTE.ID_EMPRES' + + 'A,'#10' V_ALBARANES_CLIENTE.ID_CLIENTE,'#10' V_ALBARANES_CLIENTE.NOMBR' + + 'E,'#10' V_CLIENTES.NOMBRE_COMERCIAL,'#10' V_ALBARANES_CLIENTE.FECHA_AL' + + 'BARAN,'#10' V_ALBARANES_CLIENTE.REFERENCIA,'#10' V_ALBARANES_CLIENTE.I' + + 'D_PEDIDO,'#10' V_ALBARANES_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENT' + + 'E.CODIGO_POSTAL,'#10' V_ALBARANES_CLIENTE.POBLACION,'#10' V_ALBARANES_' + + 'CLIENTE.PROVINCIA,'#10' V_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' V_A' + + 'LBARANES_CLIENTE.TELEFONO,'#10' V_ALBARANES_CLIENTE.CALLE,'#10' V_ALBA' + + 'RANES_CLIENTE.OBSERVACIONES,'#10' V_ALBARANES_CLIENTE.IMPORTE_TOTAL' + + ','#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NOMBRE AS NO' + + 'MBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS RAZON_SOCIAL_EMPRESA,'#10' ' + + ' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPRESA,'#10' EMPRESAS.FAX AS FA' + + 'X_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1_EMPRESA,'#10' EMPRESAS.EMA' + + 'IL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGINA_WEB_EMP' + + 'RESA'#10'FROM'#10' V_ALBARANES_CLIENTE'#10' LEFT OUTER JOIN V_CLIENTES O' + + 'N (V_CLIENTES.ID = V_ALBARANES_CLIENTE.ID_CLIENTE)'#10' LEFT OUTER ' + + 'JOIN EMPRESAS ON (EMPRESAS.ID = V_ALBARANES_CLIENTE.ID_EMPRESA)'#10 + + 'WHERE V_ALBARANES_CLIENTE.ID = :ID' + 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 = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'NOMBRE_EMPRESA' + TableField = 'NOMBRE_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL_EMPRESA' + TableField = 'RAZON_SOCIAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1_EMPRESA' + TableField = 'TELEFONO_1_EMPRESA' + end + item + DatasetField = 'FAX_EMPRESA' + TableField = 'FAX_EMPRESA' + end + item + DatasetField = 'MOVIL_1_EMPRESA' + TableField = 'MOVIL_1_EMPRESA' + end + item + DatasetField = 'EMAIL_1_EMPRESA' + TableField = 'EMAIL_1_EMPRESA' + end + item + DatasetField = 'PAGINA_WEB_EMPRESA' + TableField = 'PAGINA_WEB_EMPRESA' + 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 = 'NOMBRE_COMERCIAL' + TableField = 'NOMBRE_COMERCIAL' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + 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' ALBARANES_CLIENTE_DETAL' + + 'LES.CONCEPTO, ALBARANES_CLIENTE_DETALLES.CANTIDAD,'#10' ALBARA' + + 'NES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIENTE_DETALLES.' + + 'IMPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, A' + + 'RTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10'FROM ALBARANES' + + '_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON (ALBARANES_CLIENTE_DETA' + + 'LLES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE ID_ALBARAN = :ID_ALBARAN'#10 + + 'ORDER BY POSICION' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTRATO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39233.404692557870000000 + 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' + + ' DireccionEnvio.Lines.Add();' + '' + ' 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 Memo2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' Memo2.Lines.Clear;' + ' if (StrToFloat() < 0) then' + ' Memo2.Lines.Add('#39'ORDEN DE DEVOLUCI'#211'N'#39')' + ' else' + ' Memo2.Lines.Add('#39'ALBAR'#193'N DE CLIENTE'#39')' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = <> + 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/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas new file mode 100644 index 00000000..16e77333 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas @@ -0,0 +1,93 @@ +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; + +type + TRptAlbaranesCliente = 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); + private + FConnection: IDAConnection; + public + function GenerarAlbaran(const AID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schAlbaranesClienteClient_Intf; + +const + rptInforme = 'InfAlbaranCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptAlbaranesCliente } + + +procedure TRptAlbaranesCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptAlbaranesCliente.GenerarAlbaran(const AID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['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 + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..5139173b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm @@ -0,0 +1,3090 @@ +object srvAlbaranesCliente: TsrvAlbaranesCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesCliente + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 306 + Width = 494 + object schAlbaranesCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + + 'IGO'#10'AND ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_CLIENTE, NOMBRE, FECHA_ALBARAN, '#10 + + ' REFERENCIA, TIPO, SITUACION, ID_ALMACEN, NOMBRE_ALMACEN,'#10' ' + + ' ID_PEDIDO, REF_PEDIDO, ID_FACTURA, REF_FACTURA,'#10' CALLE, CODI' + + 'GO_POSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO, '#10' TELEFONO' + + ', IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' ' + + ' BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACIONES' + + ', '#10' INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,'#10' FECHA_M' + + 'ODIFICACION, USUARIO, ID_FORMA_PAGO, FECHA_PREVISTA_ENVIO, FECHA' + + '_ENVIO,'#10' FECHA_RECEPCION'#10' FROM'#10' V_ALBARANES_CLIENTE' + StatementType = stSQL + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_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 = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + 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 = '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 = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'FECHA_RECEPCION' + TableField = 'FECHA_RECEPCION' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'AlbaranesCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + 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.IMPORTE_UNIDAD, ALBARANES_CLIENTE_DETALLES.IMPOR' + + 'TE_TOTAL,'#10' ALBARANES_CLIENTE_DETALLES.VISIBLE,'#10#10' ALBARANES' + + '_CLIENTE_DETALLES.ID_ARTICULO, ALBARANES_CLIENTE_DETALLES.DESCUE' + + 'NTO,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS' + + '.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10 + + 'FROM ALBARANES_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON ALBARANES' + + '_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE ALBARANES_CLI' + + 'ENTE_DETALLES.ID_ALBARAN = :ID_ALBARAN'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'AlbaranesCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + 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.IMPORTE_UNIDAD, ALBARANES_CLIENTE_DETALLES.IMPOR' + + 'TE_TOTAL,'#10' ALBARANES_CLIENTE_DETALLES.VISIBLE,'#10#10' ALBARANES' + + '_CLIENTE_DETALLES.ID_ARTICULO, ALBARANES_CLIENTE_DETALLES.DESCUE' + + 'NTO,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS' + + '.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10 + + 'FROM ALBARANES_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON ALBARANES' + + '_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE ALBARANES_CLI' + + 'ENTE_DETALLES.ID_ALBARAN = :ID_ALBARAN'#10'AND ALBARANES_CLIENTE_DET' + + 'ALLES.ID = :ID'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'AlbaranesCliente_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_Refresh_ID_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_Refresh_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_Refresh_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_Detalles_Refresh_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '22' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_CLIENTE, NOMBRE, FECHA_ALBARAN, '#10 + + ' REFERENCIA, TIPO, SITUACION, ID_ALMACEN, NOMBRE_ALMACEN,'#10' ' + + ' ID_PEDIDO, REF_PEDIDO, ID_FACTURA, REF_FACTURA,'#10' CALLE, CODI' + + 'GO_POSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO, '#10' TELEFONO' + + ', IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' ' + + ' BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACIONES' + + ', '#10' INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,'#10' FECHA_M' + + 'ODIFICACION, USUARIO, ID_FORMA_PAGO, FECHA_PREVISTA_ENVIO, FECHA' + + '_ENVIO,'#10' FECHA_RECEPCION'#10' FROM'#10' V_ALBARANES_CLIENTE'#10' WHE' + + 'RE V_ALBARANES_CLIENTE.ID = :ID' + StatementType = stSQL + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_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 = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + 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 = '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 = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'FECHA_RECEPCION' + TableField = 'FECHA_RECEPCION' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'AlbaranesCliente_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' ALBARANES_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'INSERT INTO ALBARANES_CLIENTE_DETALLES ('#10' ID,'#10' ID_ALBARAN,' + + #10' POSICION,'#10' TIPO_DETALLE,'#10' ID_ARTICULO,'#10' CONCEPTO,'#10 + + ' CANTIDAD,'#10' IMPORTE_UNIDAD,'#10' DESCUENTO,'#10' IMPORTE_POR' + + 'TE,'#10' IMPORTE_TOTAL,'#10' VISIBLE,'#10' FECHA_ALTA,'#10' FECHA_MO' + + 'DIFICACION)'#10' VALUES ('#10' :ID,'#10' :ID_ALBARAN,'#10' :POSICION,'#10 + + ' :TIPO_DETALLE,'#10' :ID_ARTICULO,'#10' :CONCEPTO,'#10' :CANTIDA' + + 'D,'#10' :IMPORTE_UNIDAD,'#10' :DESCUENTO,'#10' :IMPORTE_PORTE,'#10' ' + + ':IMPORTE_TOTAL,'#10' :VISIBLE,'#10' :FECHA_ALTA,'#10' :FECHA_MODIFI' + + 'CACION);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'UPDATE ALBARANES_CLIENTE_DETALLES'#10' SET'#10' ID_ALBARAN = :ID_ALB' + + 'ARAN,'#10' POSICION = :POSICION,'#10' TIPO_DETALLE = :TIPO_DETALLE' + + ','#10' ID_ARTICULO = :ID_ARTICULO,'#10' CONCEPTO = :CONCEPTO,'#10' ' + + 'CANTIDAD = :CANTIDAD,'#10' IMPORTE_UNIDAD = :IMPORTE_UNIDAD,'#10' ' + + 'DESCUENTO = :DESCUENTO,'#10' IMPORTE_PORTE = :IMPORTE_PORTE,'#10' ' + + 'IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' VISIBLE = :VISIBLE,'#10' FECH' + + 'A_MODIFICACION = :FECHA_MODIFICACION'#10' WHERE'#10' (ID = :OLD_ID);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'INSERT'#10' INTO ALBARANES_CLIENTE'#10' (ID, ID_EMPRESA, ID_CLIENTE,' + + ' REFERENCIA, FECHA_ALBARAN,'#10' ID_PEDIDO, ID_ALMACEN, ID_FACTU' + + 'RA, CALLE,'#10' CODIGO_POSTAL, POBLACION, PROVINCIA, PERSONA_CON' + + 'TACTO, '#10' TELEFONO, BASE_IMPONIBLE, IMPORTE_NETO, IMPORTE_POR' + + 'TE, '#10' DESCUENTO, IMPORTE_DESCUENTO, IVA, IMPORTE_IVA, IMPORT' + + 'E_TOTAL, '#10' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, ' + + 'FECHA_ALTA, '#10' FECHA_MODIFICACION, USUARIO, ID_FORMA_PAGO,'#10' ' + + ' FECHA_PREVISTA_ENVIO, FECHA_ENVIO, FECHA_RECEPCION)'#10' VALUES'#10 + + ' (:ID, :ID_EMPRESA, :ID_CLIENTE, :REFERENCIA, :FECHA_ALBARAN,' + + #10' :ID_PEDIDO, :ID_ALMACEN, :ID_FACTURA, :CALLE,'#10' :CODIGO' + + '_POSTAL, :POBLACION, :PROVINCIA, :PERSONA_CONTACTO, '#10' :TELEF' + + 'ONO, :BASE_IMPONIBLE, :IMPORTE_NETO, :IMPORTE_PORTE, '#10' :DESC' + + 'UENTO, :IMPORTE_DESCUENTO, :IVA, :IMPORTE_IVA, '#10' :IMPORTE_TO' + + 'TAL, :OBSERVACIONES, :INCIDENCIAS, :INCIDENCIAS_ACTIVAS, '#10' :' + + 'FECHA_ALTA, :FECHA_MODIFICACION, :USUARIO,'#10' :ID_FORMA_PAGO, ' + + ':FECHA_PREVISTA_ENVIO, :FECHA_ENVIO, :FECHA_RECEPCION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'UPDATE ALBARANES_CLIENTE'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA, '#10' ' + + ' ID_CLIENTE = :ID_CLIENTE, '#10' REFERENCIA = :REFERENCIA, '#10' ' + + ' FECHA_ALBARAN = :FECHA_ALBARAN, '#10' ID_PEDIDO = :ID_PEDIDO, '#10' ' + + ' ID_ALMACEN = :ID_ALMACEN,'#10' ID_FACTURA = :ID_FACTURA, '#10' ' + + 'CALLE = :CALLE, '#10' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' POBLAC' + + 'ION = :POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10' PERSONA_CONT' + + 'ACTO = :PERSONA_CONTACTO, '#10' TELEFONO = :TELEFONO, '#10' BASE_I' + + 'MPONIBLE = :BASE_IMPONIBLE, '#10' IMPORTE_NETO = :IMPORTE_NETO, '#10 + + ' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' DESCUENTO = :DESCUENTO,' + + ' '#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO, '#10' IVA = :IVA, '#10 + + ' IMPORTE_IVA = :IMPORTE_IVA, '#10' IMPORTE_TOTAL = :IMPORTE_TO' + + 'TAL, '#10' OBSERVACIONES = :OBSERVACIONES, '#10' INCIDENCIAS = :IN' + + 'CIDENCIAS, '#10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS, '#10' ' + + ' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MODI' + + 'FICACION, '#10' USUARIO = :USUARIO, '#10' ID_FORMA_PAGO = :ID_FORM' + + 'A_PAGO,'#10' FECHA_PREVISTA_ENVIO = :FECHA_PREVISTA_ENVIO,'#10' FE' + + 'CHA_ENVIO = :FECHA_ENVIO, '#10' FECHA_RECEPCION = :FECHA_RECEPCIO' + + 'N'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert AlbaranesCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert AlbaranesCliente_Detalles' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update AlbaranesCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update AlbaranesCliente_Detalles' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente_Detalles' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'AlbaranesCliente' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object bpAlbaranesCliente: TDABusinessProcessor + Schema = schAlbaranesCliente + InsertCommandName = 'Insert_AlbaranesCliente' + DeleteCommandName = 'Delete_AlbaranesCliente' + UpdateCommandName = 'Update_AlbaranesCliente' + RefreshDatasetName = 'AlbaranesCliente_Refresh' + ReferencedDataset = 'AlbaranesCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 200 + Top = 24 + end + object bpAlbaranesCliente_Detalles: TDABusinessProcessor + Schema = schAlbaranesCliente + InsertCommandName = 'Insert_AlbaranesCliente_Detalles' + DeleteCommandName = 'Delete_AlbaranesCliente_Detalles' + UpdateCommandName = 'Update_AlbaranesCliente_Detalles' + RefreshDatasetName = 'AlbaranesCliente_Detalles_Refresh' + ReferencedDataset = 'AlbaranesCliente_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 200 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'AlbaranesCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del cliente' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'POSICION' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TIPO_DETALLE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONCEPTO' + Alignment = taLeftJustify + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'VISIBLE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha albar'#225'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCUENTO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_PORTE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALMACEN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de env'#237'o' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de recepci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_REF_PEDIDO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. pedido cliente' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_REF_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. factura cliente' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha prevista de envio' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesCliente_TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + end> + Left = 48 + Top = 152 + 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 00000000..e2b70b44 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas @@ -0,0 +1,109 @@ +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:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvAlbaranesCliente } + TsrvAlbaranesCliente = class(TDARemoteService, IsrvAlbaranesCliente) + DABINAdapter: TDABINAdapter; + bpAlbaranesCliente: TDABusinessProcessor; + bpAlbaranesCliente_Detalles: TDABusinessProcessor; + schAlbaranesCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvAlbaranesCliente methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesClienteClient_Intf, uRestriccionesUsuarioUtils, + uRptAlbaranesCliente_Server, uBizAlbaranClienteServer; + +{ uRORemoteDataModule, + fServerForm, Variants, IB, schAlbaranesClienteClient_Intf; +} +procedure Create_srvAlbaranesCliente(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesCliente.Create(NIL); +end; + +{ srvAlbaranesCliente } +procedure TsrvAlbaranesCliente.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvAlbaranesCliente.GenerateReport(const ID: Integer): Binary; +var + AReportGenerator : TRptAlbaranesCliente; +begin + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarAlbaran(ID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvAlbaranesCliente.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..982a9ee4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj @@ -0,0 +1,503 @@ + + + + + + + + + + + + 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.dpk b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk new file mode 100644 index 00000000..af5cf3be --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk @@ -0,0 +1,122 @@ +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 + rtl, + vcl, + dbrtl, + vcldb, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + GUIBase, + Contactos_model, + Contactos_view, + DataAbstract_D10, + Empresas_controller, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + JvGlobusD10R, + VclSmp, + vclie, + Articulos_view, + dxLayoutControlD10, + Almacenes_model, + Almacenes_controller, + AlbaranesCliente_model, + AlbaranesCliente_controller, + AlbaranesCliente_data, + PedidosCliente_model, + PedidosCliente_controller, + FormasPago_model, + FormasPago_controller, + FacturasCliente_model, + FacturasCliente_controller, + Inventario_model, + Inventario_controller, + JSDialog100, + PedCli_AlbCli_relation, + 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}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.pas new file mode 100644 index 00000000..15b329bf --- /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.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm new file mode 100644 index 00000000..9609ae70 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm @@ -0,0 +1,483 @@ +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 = 738 + 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 + end + inherited TBXDock: TTBXDock + Width = 765 + ExplicitWidth = 765 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + 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 = 765 + Height = 412 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 765 + ExplicitHeight = 412 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 757 + ExplicitHeight = 384 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente + Left = 0 + Top = 0 + Width = 757 + Height = 384 + 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 = 757 + ExplicitHeight = 384 + inherited ToolBar1: TToolBar + Width = 757 + ExplicitWidth = 757 + end + inherited cxGrid: TcxGrid + Width = 757 + Height = 312 + ExplicitWidth = 757 + ExplicitHeight = 312 + end + inherited TBXDock1: TTBXDock + Width = 757 + ExplicitWidth = 757 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + 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 = 757 + Height = 384 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 757 + ExplicitHeight = 384 + inherited pnlSup: TPanel + Width = 757 + ExplicitWidth = 757 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 757 + Height = 356 + ExplicitWidth = 757 + ExplicitHeight = 356 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 734 + ExplicitHeight = 323 + Height = 323 + 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 = 488 + Width = 765 + Height = 78 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 488 + ExplicitWidth = 765 + ExplicitHeight = 78 + inherited dxLayoutControl1: TdxLayoutControl + Width = 765 + Height = 78 + Align = alClient + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 765 + ExplicitHeight = 78 + inherited Bevel1: TBevel + Left = 93 + Top = 92 + Width = 73 + ExplicitLeft = 93 + ExplicitTop = 92 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 368 + Top = 11 + Width = 7 + Height = 54 + ExplicitLeft = 368 + ExplicitTop = 11 + ExplicitWidth = 7 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 484 + Top = 92 + Width = 192 + ExplicitLeft = 484 + ExplicitTop = 92 + ExplicitWidth = 192 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 164 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 164 + ExplicitTop = 112 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 555 + Top = 38 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 555 + ExplicitTop = 38 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 485 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 485 + ExplicitTop = 112 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 93 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 112 + end + inherited edtIVA: TcxDBSpinEdit + Left = 484 + Top = 38 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 484 + ExplicitTop = 38 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 484 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 484 + ExplicitTop = 11 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 484 + Top = 65 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 484 + ExplicitTop = 65 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 555 + Top = 65 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 555 + ExplicitTop = 65 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 93 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 11 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 93 + Top = 139 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 139 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 93 + Top = 38 + DataBinding.DataField = '' + ExplicitLeft = 93 + ExplicitTop = 38 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 220 + Top = 38 + ExplicitLeft = 220 + ExplicitTop = 38 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 93 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + ExplicitLeft = 93 + ExplicitTop = 65 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 32 + Top = 96 + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + 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 00000000..282e3074 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas @@ -0,0 +1,366 @@ +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; + +type + TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); override; + 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 actEliminarUpdate(Sender: TObject); + 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; + + 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; + +{$R *.dfm} + +{ TfEditorAlbaranCliente } + +{ +**************************** TfEditorAlbaranCliente **************************** +} +procedure TfEditorAlbaranCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + (FAlbaran.SITUACION = SITUACION_ALBARAN_PENDIENTE); +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; + +procedure TfEditorAlbaranCliente.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este albarán 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 ningún 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; + FAlbaran.IMPORTE_PORTE := DisplayValue; +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; + bEsNuevo := False; + + ShowHourglassCursor; +// frViewDetallesPedidoCliente1.SaveGridStatus; + frViewDetallesAlbaranCliente1.BeginUpdate; + try + bEsNuevo := FAlbaran.EsNuevo; + FController.Guardar(FAlbaran); + finally + frViewDetallesAlbaranCliente1.EndUpdate; +// frViewDetallesPedidoCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + ShowInfoMessage('El albarán se ha dado de alta con el código ' + FAlbaran.REFERENCIA); + Modified := False; +end; + +procedure TfEditorAlbaranCliente.ImprimirInterno; +begin + inherited; + FController.Print(FAlbaran); +end; + +procedure TfEditorAlbaranCliente.OnClienteChanged(Sender: TObject); +var + AClientesController : IClientesController; + ADireccion : IBizDireccionesContacto; +begin + if Assigned(FAlbaran) then + begin + FAlbaran.Cliente := ViewAlbaran.ViewClienteAlbaran.Cliente; + + AClientesController := TClientesController.Create; + try + // 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 dirección de envio + case FAlbaran.Cliente.Direcciones.RecordCount of + 0 : begin + ADireccion := NIL; + ShowWarningMessage('Este cliente no tiene ' + #10#13 + 'ninguna dirección de envío en su ficha'); + end; + 1 : begin + ADireccion := FAlbaran.Cliente.Direcciones; + end + else begin + ADireccion := AClientesController.ElegirDireccionEntrega(FAlbaran.Cliente.Direcciones, 'Seleccione la dirección del cliente que quiere utilizar como dirección de envio de este albaran.'); + end; + end; + + // Si hay dirección de envio, copiarla al albarán 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 artículos hay que cambiarlos. + if (FAlbaran.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Cliente); + + finally + AClientesController := NIL; + end; + 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 albarán'); + 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 albarán de cliente' + else + FTitulo := 'Albarán de cliente' + ' - ' + FAlbaran.Cliente.Nombre + ' - ' + FAlbaran.SITUACION; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorAlbaranCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FAlbaran); +end; + +procedure TfEditorAlbaranCliente.SetController(const Value: IAlbaranesClienteController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewAlbaran.ViewClienteAlbaran.Controller := Controller.ClienteController; + frViewDetallesAlbaranCliente1.Controller := Controller.DetallesController; + end; +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 + FViewAlbaran.Albaran := FAlbaran; + ViewAlbaran.ViewClienteAlbaran.Cliente := FAlbaran.Cliente; + ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := OnClienteChanged; + frViewDetallesAlbaranCliente1.Detalles := FAlbaran.Detalles; + frViewDetallesAlbaranCliente1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el cliente seleccionado + 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; + ViewAlbaran.ViewClienteAlbaran.Cliente := 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.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm new file mode 100644 index 00000000..1ad2c5a1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm @@ -0,0 +1,197 @@ +inherited fEditorAlbaranDevCliente: TfEditorAlbaranDevCliente + Caption = 'fEditorAlbaranDevCliente' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + 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 + 4D410000B18E7CFB5193000003934944415478DAB5946B6C536518C77F675D27 + 83B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B22851319068FCA080 + 5C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD43233218B22801A9 + 6CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFFDFFF739354 + 55E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484ABFAAA99FD + D5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE85AF8F1C7F + 304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7BFD3ACE973 + 07AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7F66145B99B + 0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D98958777D39279A7E + 898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0BA86F3D8FB3 + E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C9C815C3B8F + 6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD8189702D7A73BC9 + 3E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F282307430C + 3F03BD734A884B417238C036E70E56867F273829EA3F2515CB93850C2FB88A75 + 8D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E373DE50E66F7 + 5FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D0B7E731910 + BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1A46970C32A + 2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858F46847C79D + D0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F83DEE0805E3 + 98F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D60F982E55C + 3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BDB9323563B4 + D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4C443523A64 + BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B732E2CDA2B4A + 561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911E0DA9AF4FE + 2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5421075543C + A7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301BD62F2F7C0 + 23769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC287A429F88 + 334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73BA7F7AF11C8 + 57A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669DA7F7EB63EA + 6F8A0E921A675CAE400000000049454E44AE426082} + end + end + inherited pgPaginas: TPageControl + inherited pagContenido: TTabSheet + inherited frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente + inherited TBXDock1: TTBXDock + ExplicitTop = 46 + end + end + end + inherited pagInicidencias: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 757 + ExplicitHeight = 384 + 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 ImporteDto: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited ImporteIVA: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited ImporteTotal: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited edtDescuento: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited edtIVA: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited ImporteBase: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited edtRE: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited ImporteRE: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited eImporteNeto: TcxDBCurrencyEdit + Style.IsFontAssigned = True + end + inherited ePorte: TcxDBCurrencyEdit + Style.IsFontAssigned = True + 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 00000000..4aaf9d9f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.pas @@ -0,0 +1,71 @@ +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; + +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 + (Sender as TAction).Enabled := HayDatos and (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 devolución de cliente' + else + FTitulo := 'Orden de devolución de cliente' + ' - ' + FAlbaran.Cliente.Nombre; + end; + + inherited PonerTitulos(FTitulo); +end; + +end. 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 00000000..766c33eb --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm @@ -0,0 +1,2862 @@ +inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente + Caption = 'Lista de albaranes de cliente' + ClientWidth = 583 + ExplicitWidth = 591 + ExplicitHeight = 240 + 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 TBXItem38: TTBXItem [9] + Action = actServirAlbaran + DisplayMode = nbdmImageAndText + end + object TBXItem39: TTBXItem [10] + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem17: TTBXSeparatorItem [12] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 583 + 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 actServirAlbaran: TAction + Category = 'Acciones' + Caption = 'Servir albar'#225'n...' + ImageIndex = 23 + OnExecute = actServirAlbaranExecute + OnUpdate = actServirAlbaranUpdate + 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 = actServirAlbaran + end + object Generarfactura1: TMenuItem [7] + Action = actGenerarFactura + 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 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 = 184 + 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 seleccionado' + 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 = 450 + 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 seleccionado' + 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 = 450 + Left = 232 + 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 00000000..10674c14 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas @@ -0,0 +1,338 @@ +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; + +type + TfEditorAlbaranesCliente = class(TfEditorGridBase, IEditorAlbaranesCliente) + JsNuevoAlbaranDialog: TJSDialog; + actGenerarFactura: TAction; + N4: TMenuItem; + Generarfactura1: TMenuItem; + TBXSeparatorItem17: TTBXSeparatorItem; + actServirAlbaran: TAction; + Serviralbarn1: TMenuItem; + TBXItem38: TTBXItem; + JsListaFacturasGeneradas: TJSDialog; + JsImprimirDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + TBXItem39: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actServirAlbaranUpdate(Sender: TObject); + procedure actServirAlbaranExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + + 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; + + //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, uPedidosClienteController, + uBizPedidosCliente, uDialogUtils, schAlbaranesClienteClient_Intf, + uFacturasClienteController, uBizFacturasCliente, uInventarioController, + uEditorBase, uGenerarAlbaranesCliUtils, uGenerarFacturasCliAlbCliUtils; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesCliente *************************** +} +procedure TfEditorAlbaranesCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_PENDIENTE); +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaExecute(Sender: TObject); +begin + GenerarFacturaCli(Albaranes.ID); + actRefrescar.Execute; +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and (FAlbaranes.REF_FACTURA = ''); +end; + +procedure TfEditorAlbaranesCliente.actServirAlbaranExecute(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.actServirAlbaranUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + 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; + 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; +begin + if (Application.MessageBox('¿Desea borrar este albarán de cliente?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Albaranes); + inherited; + end; +end; + +procedure TfEditorAlbaranesCliente.FormShow(Sender: TObject); +begin + 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; +begin + //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 + FController.Print(FAlbaranes); + end; + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.ModificarInterno; +begin + inherited; + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesCliente.NuevoInterno; +var + Respuesta : Integer; + FPedidosClienteController : IPedidosClienteController; + APedido : IBizPedidoCliente; +begin + inherited; + + Respuesta := JsNuevoAlbaranDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevoAlbaranDialog.CustomButtonResult of + 200 : begin // Utilizar un pedido + FPedidosClienteController := TPedidosClienteController.Create; + try + APedido := FPedidosClienteController.ElegirPedidos(FPedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el albarán.', False); + if Assigned(APedido) then + GenerarAlbaranCli(APedido); // El proceso de generación ya pregunta si el usuario quiere ver o no el albarán generado. + finally + FPedidosClienteController := NIL; + end; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Albaranes) then + FController.Ver(Albaranes); + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (ATitulo = '') then + FTitulo := 'Lista de albaranes de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE + else + FTitulo := ATitulo; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesCliente.PrevisualizarInterno; +var + Respuesta : Integer; +begin + //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 + FController.Preview(FAlbaranes); + end; + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.SetController(const Value: IAlbaranesClienteController); +begin + FController := Value; +end; + +procedure TfEditorAlbaranesCliente.SetAlbaranes(const Value: IBizAlbaranCliente); +begin + FAlbaranes := Value; + dsDataTable.DataTable := FAlbaranes.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewAlbaranesCliente).Albaranes := Albaranes; +end; + +end. 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 00000000..ac201f11 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dfm @@ -0,0 +1,12 @@ +inherited fEditorAlbaranesClientePreview: TfEditorAlbaranesClientePreview + Caption = 'Previsualizar el albar'#225'n de cliente' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + 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 00000000..642b0f88 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas @@ -0,0 +1,23 @@ +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; + +type + TfEditorAlbaranesClientePreview = class(TfEditorPreview, IEditorAlbaranesClientePreview) + end; + + +implementation +{$R *.dfm} + +end. 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 00000000..6eb78368 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm @@ -0,0 +1,897 @@ +inherited fEditorAlbaranesDevCliente: TfEditorAlbaranesDevCliente + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a cliente' + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a cliente' + inherited Image1: TImage + 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 + 4D410000B18E7CFB5193000003934944415478DAB5946B6C536518C77F675D27 + 83B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B22851319068FCA080 + 5C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD43233218B22801A9 + 6CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFFDFFF739354 + 55E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484ABFAAA99FD + D5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE85AF8F1C7F + 304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7BFD3ACE973 + 07AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7F66145B99B + 0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D98958777D39279A7E + 898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0BA86F3D8FB3 + E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C9C815C3B8F + 6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD8189702D7A73BC9 + 3E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F282307430C + 3F03BD734A884B417238C036E70E56867F273829EA3F2515CB93850C2FB88A75 + 8D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E373DE50E66F7 + 5FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D0B7E731910 + BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1A46970C32A + 2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858F46847C79D + D0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F83DEE0805E3 + 98F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D60F982E55C + 3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BDB9323563B4 + D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4C443523A64 + BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B732E2CDA2B4A + 561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911E0DA9AF4FE + 2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5421075543C + A7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301BD62F2F7C0 + 23769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC287A429F88 + 334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73BA7F7AF11C8 + 57A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669DA7F7EB63EA + 6F8A0E921A675CAE400000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + inherited TBXItem39: TTBXItem + Caption = 'Generar abono...' + end + end + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actServirAlbaran: TAction + 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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000001FF4944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A0093D32914C5FFF699816964F1AFDB0D19E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C0CBB55A0C2BB71CC16D00CCD9602F00 + E5FEFCF907B759C8FF32C3D3951A0C6B771CC36F00CC253F761A3370B89F85DB + 2C1E7C8DE1C15255864D7B4EE2370066F3E7DB87195E2C8EC3E723170C03FEEC + 356560713E0D963DAB12C0206AE6CEC01BD2CFC02F200009CC776F191ECE99C6 + C0AAFE9261FBCA8D0C1806809C0DF3F3431F31061D6E318623AE160C1659760C + 3F9FBC63B85BB79EE1CBCB0F0C572CD31818EE4E44189011E5C6C0E67A06C57D + A7247C18E4AEFE6060E6E264786563C8F0F5F045866F1CEC0C86DD7E0C0B6F78 + 31306F4F4518901CE60CB61516EA92A1D7192E9B8730B0584D66F89B13CCF0F5 + CF7F864F42820C96F3C21898FFFD61987D2B08D580B820079428938BBC0536E0 + 9B7C2903635B39C3AB0FDF19BE323033E895583328988B32CC7E95826A40949F + 1D5C33CCA0AF25460CFC8F59186E3C79C9A059E7C6F070FB75865B9B6F33D8E6 + 6831EC31EE413520D4CB9A61F5B6A3A871343581E1D1CD970CF722CB18FE583A + 82C5184F1E6260DEB482E1AF472003D39755080340090323923F9C6550FF708D + E1979100AAC4F7BFC064CAC060A7C5E20200AAB168A94D3B55AF000000004945 + 4E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited JsImprimirDialog: TJSDialog + CustomButtons = < + item + Caption = 'Imprimir la orden de devoluci'#243'n seleccionada' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de ordenes de devoluci'#243'n actual' + Value = 200 + end> + Width = 465 + end + inherited JsPrevisualizarDialog: TJSDialog + CustomButtons = < + item + Caption = 'Previsualizar la orden de devoluci'#243'n seleccionada' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de '#243'rdenes de devoluci'#243'n actual' + Value = 200 + end> + Width = 465 + 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 00000000..c91eadbe --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas @@ -0,0 +1,56 @@ +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; + +type + TfEditorAlbaranesDevCliente = class(TfEditorAlbaranesCliente, IEditorAlbaranesDevCliente) + procedure actEliminarUpdate(Sender: TObject); + protected + procedure AsignarVista; override; + procedure NuevoInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.dfm} + +uses + uDataModuleUsuarios, uViewAlbaranesDevCliente; + +{ TfEditorAlbaranesDevCliente } + +procedure TfEditorAlbaranesDevCliente.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := HayDatos and (FAlbaranes.REF_FACTURA = ''); +end; + +procedure TfEditorAlbaranesDevCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesDevCliente) as IViewAlbaranesDevCliente; +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 := 'Lista de órdenes de devolución a cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. 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 00000000..91ec1362 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm @@ -0,0 +1,216 @@ +inherited fEditorElegirAlbaranesCliente: TfEditorElegirAlbaranesCliente + Caption = 'Seleccionar albar'#195#161'n de cliente' + ClientWidth = 790 + ExplicitWidth = 798 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 790 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el albar'#225'n de cliente') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = 8 + ExplicitWidth = 656 + 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 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 790 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + 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 TBXItem38: TTBXItem + Visible = False + end + inherited TBXItem37: TTBXItem + Visible = False + end + inherited TBXSeparatorItem17: TTBXSeparatorItem + Visible = False + end + inherited TBXItem23: TTBXItem + 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 + Left = 117 + Top = 23 + DockPos = 104 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 790 + end + end + inherited StatusBar: TJvStatusBar + Width = 790 + ExplicitWidth = 790 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 389 + 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 = 389 + 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 + 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 00000000..fc2b9e49 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas @@ -0,0 +1,127 @@ +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, JvgWizardHeader, StdCtrls, + uEditorAlbaranesCliente, uBizAlbaranesCliente, uIEditorElegirAlbaranesCliente, + JvExComCtrls, JvStatusBar, JSDialog; + +type + TfEditorElegirAlbaranesCliente = class(TfEditorAlbaranesCliente, IEditorElegirAlbaranesCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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 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; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirAlbaranesCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirAlbaranesCliente.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := AValue; +end; + +procedure TfEditorElegirAlbaranesCliente.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirAlbaranesCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + //Para que no salgan las pestañas de filtrado + ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. 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 00000000..bb2c5217 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dfm @@ -0,0 +1,7 @@ +inherited fEditorElegirArticulosAlbaranCliente: TfEditorElegirArticulosAlbaranCliente + Caption = 'fEditorElegirArticulosAlbaranCliente' + ExplicitWidth = 320 + ExplicitHeight = 480 + 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 00000000..cc1b2b53 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.pas @@ -0,0 +1,33 @@ +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, + JvgWizardHeader, uIEditorElegirArticulosAlbaranesCliente; + +type + TfEditorElegirArticulosAlbaranCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosAlbaranesCliente) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosAlbaranesCliente; + +{ TfEditorElegirArticulosAlbaranCliente } + +procedure TfEditorElegirArticulosAlbaranCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosAlbaranesCliente) as IViewElegirArticulosAlbaranesCliente; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.dfm new file mode 100644 index 00000000..ac201f11 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.dfm @@ -0,0 +1,12 @@ +inherited fEditorAlbaranesClientePreview: TfEditorAlbaranesClientePreview + Caption = 'Previsualizar el albar'#225'n de cliente' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.pas new file mode 100644 index 00000000..642b0f88 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorPedidosClienteReport.pas @@ -0,0 +1,23 @@ +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; + +type + TfEditorAlbaranesClientePreview = class(TfEditorPreview, IEditorAlbaranesClientePreview) + end; + + +implementation +{$R *.dfm} + +end. 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 00000000..bb1fc4c3 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm @@ -0,0 +1,765 @@ +inherited frViewAlbaranCliente: TfrViewAlbaranCliente + Width = 822 + Height = 486 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 822 + ExplicitHeight = 486 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 822 + Height = 486 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 822 + 486) + object Label1: TLabel + Left = 22 + Top = 423 + 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 = 55 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + 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 = 119 + end + object memObservaciones: TcxDBMemo + Left = 430 + Top = 414 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Height = 253 + Width = 186 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 143 + end + inline frViewClienteAlbaran: TfrViewDatosYSeleccionCliente + Left = 430 + Top = 28 + Width = 350 + Height = 212 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 16 + ReadOnly = False + ExplicitLeft = 430 + ExplicitTop = 28 + inherited dxLayoutControl1: TdxLayoutControl + Align = alTop + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 278 + ExplicitLeft = 278 + end + inherited Button3: TBitBtn + Left = 168 + ExplicitLeft = 168 + end + end + inherited DADataSource: TDADataSource + Left = 0 + Top = 65528 + end + inherited ActionList1: TActionList + Top = 65528 + inherited actElegirContacto: TAction + OnUpdate = frViewClienteAlbaranactElegirContactoUpdate + end + inherited actAnadirContacto: TAction + OnUpdate = frViewClienteAlbaranactAnadirContactoUpdate + end + end + inherited PngImageList: TPngImageList + Top = 65528 + end + end + object eCalle: TcxDBTextEdit + Left = 116 + Top = 197 + 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 = 7 + Width = 263 + end + object ePoblacion: TcxDBTextEdit + Left = 116 + Top = 224 + DataBinding.DataField = 'POBLACION' + 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 = 8 + Width = 162 + end + object eCodigoPostal: TcxDBTextEdit + Left = 335 + Top = 224 + 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 = 9 + Width = 65 + end + object eProvincia: TcxDBTextEdit + Left = 116 + Top = 251 + DataBinding.DataField = 'PROVINCIA' + 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 = 10 + Width = 263 + end + object ePersonaContacto: TcxDBTextEdit + Left = 116 + Top = 278 + 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 + 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 + Width = 84 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 116 + Top = 305 + DataBinding.DataField = 'TELEFONO' + 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 = 12 + Width = 122 + end + object bElegirDireccion: TBitBtn + Left = 228 + Top = 332 + Width = 172 + Height = 23 + Action = actElegirDireccion + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + TabOrder = 13 + end + object Button1: TButton + Left = 268 + Top = 111 + Width = 132 + Height = 23 + Action = actVerPedidoCli + TabOrder = 5 + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 116 + Top = 111 + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 16 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 116 + 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.ListSource = dsFormaPago + 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 = 2 + Width = 32 + end + object bFormasPago: TButton + Left = 268 + Top = 82 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 3 + OnClick = bFormasPagoClick + end + object eFechaRecepcion: TcxDBDateEdit + Left = 581 + Top = 357 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_RECEPCION' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + 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 = 123 + end + object eFechaEnvio: TcxDBTextEdit + Left = 581 + Top = 303 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENVIO' + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Width = 122 + end + object cbConAlmacen: TCheckBox + Left = 32 + Top = 391 + Width = 179 + Height = 21 + Caption = 'Asociar este albar'#225'n al almac'#233'n:' + TabOrder = 14 + OnClick = cbConAlmacenClick + end + object cbAlmacen: TcxDBLookupComboBox + Left = 217 + Top = 391 + 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.ListSource = dsAlmacenes + 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 = 15 + Width = 69 + end + object cbFechaRecepcion: TCheckBox + Left = 440 + Top = 330 + Width = 340 + Height = 21 + Caption = 'El cliente ha recibido y firmado este albar'#225'n el d'#237'a:' + TabOrder = 19 + OnClick = cbFechaRecepcionClick + end + object eRefFacturaCli: TcxDBTextEdit + Left = 116 + Top = 140 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 207 + end + object eFechaPrevista: TcxDBDateEdit + Left = 581 + Top = 276 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + 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 = 17 + Width = 122 + 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 = 'Ref. albar'#225'n:' + Control = eReferencia + 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' + 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 = 'Poblaci'#243'n:' + Control = ePoblacion + 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 = 'Provincia:' + Control = eProvincia + 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' + 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 + Control = frViewClienteAlbaran + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + Caption = 'Fechas de envio y recepci'#243'n' + object dxLayoutControl1Item24: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha prevista de salida:' + Offsets.Left = 10 + Control = eFechaPrevista + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de salida del material:' + Offsets.Left = 10 + Control = eFechaEnvio + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Offsets.Left = 10 + ShowCaption = False + Control = cbFechaRecepcion + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Fecha de recepci'#243'n:' + CaptionOptions.AlignHorz = taRightJustify + 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 00000000..d3a0c348 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas @@ -0,0 +1,322 @@ +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, + cxDBLookupComboBox, uFormasPagoController, uAlmacenesController; + +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: TfrViewDatosYSeleccionCliente; + procedure SetViewClienteAlbaran(const Value: TfrViewDatosYSeleccionCliente); + property ViewClienteAlbaran: TfrViewDatosYSeleccionCliente read GetViewClienteAlbaran write SetViewClienteAlbaran; + 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; + dxLayoutControl1Item1: TdxLayoutItem; + frViewClienteAlbaran: TfrViewDatosYSeleccionCliente; + dxLayoutControl1Item8: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + ePoblacion: TcxDBTextEdit; + dxLayoutControl1Item10: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eProvincia: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group9: 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; + dxLayoutControl1Item17: TdxLayoutItem; + eFechaEnvio: TcxDBTextEdit; + dxLayoutControl1Item19: TdxLayoutItem; + cbConAlmacen: TCheckBox; + dxLayoutControl1Item20: TdxLayoutItem; + cbAlmacen: TcxDBLookupComboBox; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item18: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Item21: TdxLayoutItem; + cbFechaRecepcion: TCheckBox; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item22: TdxLayoutItem; + eRefFacturaCli: TcxDBTextEdit; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item24: TdxLayoutItem; + eFechaPrevista: TcxDBDateEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actVerPedidoCliUpdate(Sender: TObject); + procedure actVerPedidoCliExecute(Sender: TObject); + procedure frViewClienteAlbaranactElegirContactoUpdate(Sender: TObject); + procedure frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure cbConAlmacenClick(Sender: TObject); + procedure cbFechaRecepcionClick(Sender: TObject); + protected + FAlbaran : IBizAlbaranCliente; + FAlmacenesController : IAlmacenesController; + FPedidoAsociado : IBizPedidoCliente; + FPedidoController : IPedidosClienteController; + FViewClienteAlbaran : TfrViewDatosYSeleccionCliente; + FFormasPagoController : IFormasPagoController; + + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); virtual; + function GetViewClienteAlbaran: TfrViewDatosYSeleccionCliente; + procedure SetViewClienteAlbaran(const Value: TfrViewDatosYSeleccionCliente); + public + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + property ViewClienteAlbaran: TfrViewDatosYSeleccionCliente read GetViewClienteAlbaran; + end; + +implementation + +{$R *.dfm} + +{ TfrViewAlbaranCliente } + +uses + uClientesController, uBizDireccionesContacto, uAlbaranesClienteController, + schAlbaranesClienteClient_Intf, uBizFormasPago, uBizAlmacenes, uDateUtils; + + +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.Direcciones, + 'Seleccione la dirección del cliente que quiere utilizar como dirección de envio de este albaran.'); + if Assigned(ADireccion) then + begin + AAlbaranController.CopiarDireccionEnvio(ADireccion, FAlbaran); + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := ADireccion.PORTE; + end; + finally + AClientesController := NIL; + AAlbaranController := NIL; + end; +end; + +procedure TfrViewAlbaranCliente.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := 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; + (Sender as TAction).Enabled := Assigned(FPedidoAsociado) +end; + +procedure TfrViewAlbaranCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewAlbaranCliente.cbConAlmacenClick(Sender: TObject); +begin + inherited; + 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.cbFechaRecepcionClick(Sender: TObject); +begin + inherited; + if cbFechaRecepcion.Checked then + begin + eFechaRecepcion.Enabled := True; + end + else begin + eFechaRecepcion.Enabled := False; + FAlbaran.Edit; + FAlbaran.FECHA_RECEPCION := 0; + end; +end; + +procedure TfrViewAlbaranCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPagoController := TFormasPagoController.Create; + FPedidoAsociado := NIL; + FPedidoController := TPedidosClienteController.Create; + FViewClienteAlbaran := frViewClienteAlbaran; + FViewClienteAlbaran.MsgElegirCliente := 'Elija el cliente al que se le realizará el Albaran.'; + FAlmacenesController := TAlmacenesController.Create; +end; + +procedure TfrViewAlbaranCliente.CustomViewDestroy(Sender: TObject); +begin + inherited; + FViewClienteAlbaran := Nil; + FPedidoController := NIL; + FFormasPagoController := NIL; + FPedidoAsociado := NIL; + FAlmacenesController := NIL; +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactAnadirContactoUpdate( + Sender: TObject); +begin + if Assigned(FPedidoAsociado) then + (Sender as TAction).Enabled := False + else + inherited; +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactElegirContactoUpdate( + Sender: TObject); +begin + if Assigned(FPedidoAsociado) then + (Sender as TAction).Enabled := False + else + inherited; +end; + +function TfrViewAlbaranCliente.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +function TfrViewAlbaranCliente.GetViewClienteAlbaran: TfrViewDatosYSeleccionCliente; +begin + Result := FViewClienteAlbaran; +end; + +procedure TfrViewAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + DADataSource.DataTable := FAlbaran.DataTable; + frViewClienteAlbaran.Cliente := FAlbaran.Cliente; + + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + + dsAlmacenes.DataTable := (FAlmacenesController.BuscarTodos).DataTable; + dsAlmacenes.DataTable.Active := True; + + cbConAlmacen.Checked := (FAlbaran.ID_ALMACEN > 0); + cbAlmacen.Enabled := cbConAlmacen.Checked; + cbFechaRecepcion.Checked := not EsFechaVacia(FAlbaran.FECHA_RECEPCION); + eFechaRecepcion.Enabled := cbFechaRecepcion.Checked; + + eReferenciaPedidoCli.Enabled := False; + eRefFacturaCli.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; + frViewClienteAlbaran.Cliente := nil; + FPedidoAsociado := NIL; + dsFormaPago.DataTable := NIL; + dsAlmacenes.DataTable := NIL; + end; +end; + +procedure TfrViewAlbaranCliente.SetViewClienteAlbaran(const Value: TfrViewDatosYSeleccionCliente); +begin + FViewClienteAlbaran := Value; +end; + +end. 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 00000000..0d7ddc5a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm @@ -0,0 +1,131 @@ +inherited frViewAlbaranDevCliente: TfrViewAlbaranDevCliente + inherited dxLayoutControl1: TdxLayoutControl + inherited Label1: TLabel + Width = 299 + ExplicitWidth = 299 + end + inherited edtFechaAlbaran: TcxDBDateEdit + ExplicitWidth = 119 + Width = 119 + end + inherited memObservaciones: TcxDBMemo + ExplicitWidth = 186 + ExplicitHeight = 253 + Height = 253 + Width = 186 + end + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 143 + Width = 143 + end + inherited frViewClienteAlbaran: TfrViewDatosYSeleccionCliente + Width = 350 + ExplicitWidth = 350 + inherited dxLayoutControl1: TdxLayoutControl + Width = 350 + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + end + end + inherited eCalle: TcxDBTextEdit + ExplicitWidth = 263 + Width = 263 + end + inherited ePoblacion: TcxDBTextEdit + ExplicitWidth = 162 + Width = 162 + end + inherited eProvincia: TcxDBTextEdit + ExplicitWidth = 263 + Width = 263 + end + inherited ePersonaContacto: TcxDBTextEdit + ExplicitWidth = 84 + Width = 84 + end + inherited eTlfTrabajo: TcxDBTextEdit + ExplicitWidth = 122 + Width = 122 + end + inherited eReferenciaPedidoCli: TcxTextEdit + ExplicitWidth = 16 + Width = 16 + end + inherited cbFormaPago: TcxDBLookupComboBox + ExplicitWidth = 32 + Width = 32 + end + inherited cbAlmacen: TcxDBLookupComboBox + ExplicitWidth = 69 + Width = 69 + end + inherited cbFechaRecepcion: TCheckBox + Width = 340 + ExplicitWidth = 340 + end + inherited eRefFacturaCli: TcxDBTextEdit + ExplicitWidth = 207 + Width = 207 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos de la orden' + inherited dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + end + 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 dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + 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 + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group12: TdxLayoutGroup + Visible = False + 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 00000000..7beeec26 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.pas @@ -0,0 +1,28 @@ +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; + +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.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm new file mode 100644 index 00000000..617aee7d --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm @@ -0,0 +1,352 @@ +inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente + Width = 596 + Height = 479 + ExplicitWidth = 596 + ExplicitHeight = 479 + inherited cxGrid: TcxGrid + Width = 596 + Height = 351 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 596 + ExplicitHeight = 351 + 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> + OptionsCustomize.ColumnHidingOnGrouping = False + 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 + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 45 + Width = 57 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + BestFitMaxWidth = 45 + Width = 65 + end + object cxGridViewFECHA_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALBARAN' + BestFitMaxWidth = 45 + SortIndex = 0 + SortOrder = soDescending + Width = 68 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE' + BestFitMaxWidth = 120 + Width = 119 + end + object cxGridViewREF_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'REF_PEDIDO' + BestFitMaxWidth = 45 + Width = 39 + end + object cxGridViewFECHA_PREVISTA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PREVISTA_ENVIO' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewFECHA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENVIO' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewFECHA_RECEPCION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_RECEPCION' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewREF_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'REF_FACTURA' + BestFitMaxWidth = 45 + Width = 61 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Width = 63 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + BestFitMaxWidth = 45 + 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 cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevelPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridLevelEnviados: TcxGridLevel + Caption = 'Enviados' + end + object cxGridLevelServidos: TcxGridLevel + Caption = 'Servidos' + end + object cxGridLevelProximosAEnviar: TcxGridLevel + Caption = 'Pendientes de enviar' + Options.DetailFrameColor = clNone + Options.DetailFrameWidth = 0 + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 592 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 367 + ExplicitLeft = 367 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 592 + ExplicitWidth = 592 + inherited tbxBotones: TTBXToolbar + Width = 582 + ExplicitWidth = 582 + end + 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 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 = 32 + 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 cxViewGridPopupMenu: TcxGridPopupMenu + Left = 280 + end + inherited ActionList1: TActionList + object actClientes: TAction + Caption = 'Clientes' + OnExecute = actClientesExecute + OnUpdate = actClientesUpdate + end + object actAlmacenes: TAction + Caption = 'Almacenes' + OnExecute = actAlmacenesExecute + OnUpdate = actAlmacenesUpdate + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + 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 cliente/Views/uViewAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas new file mode 100644 index 00000000..2a485480 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas @@ -0,0 +1,254 @@ +unit uViewAlbaranesCliente; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, + uBizAlbaranesCliente, cxCurrencyEdit, Forms, uViewFiltroBase, ComCtrls, Tabs, + cxPC, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg; + +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) + PngImageList: TPngImageList; + 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; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var + ADone: Boolean); + 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); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FAlbaranes: IBizAlbaranCliente; + function GetAlbaranes: IBizAlbaranCliente; + procedure SetAlbaranes(const Value: IBizAlbaranCliente); + procedure AnadirOtrosFiltros; override; + + public + property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes; + end; + +implementation + +uses SysUtils, DateUtils, variants, windows, uDataModuleAlbaranesCliente, schAlbaranesClienteClient_Intf, + uViewGridBase; + +{$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_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, foLessEqual, IncDay(DateOf(Now), 15), 'DOS_SEMANAS'); + 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.cxGridViewCODIGOCustomDrawCell(Sender: + TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: + TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R: TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +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 := cxStyleRETRASADOS + else + AStyle := cxStylePENDIENTES + else + AStyle := cxStylePENDIENTES; + end + else if ASituacion = SITUACION_ALBARAN_ENVIADO then + AStyle := cxStyleENVIADOS + else if ASituacion = SITUACION_ALBARAN_SERVIDO then + AStyle := cxStyleSERVIDOS; + 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.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm new file mode 100644 index 00000000..763e7ede --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm @@ -0,0 +1,44 @@ +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 TBXDock1: TTBXDock + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 453 + Width = 453 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 237 + Width = 237 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 199 + Width = 199 + end + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39232.492941620370000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 00000000..cc52d503 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.pas @@ -0,0 +1,46 @@ +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, dxPScxGridLnk, uDADataTable, TB2Item, TBX, TB2Toolbar, + TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid; + +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; + cxGridViewSITUACION.Destroy; + cxGridViewREF_PEDIDO.Destroy; + cxGridViewFECHA_PREVISTA_ENVIO.Destroy; + cxGridViewFECHA_ENVIO.Destroy; + cxGridViewFECHA_RECEPCION.Destroy; + cxGridViewCALLE.Destroy; + cxGridViewCODIGO_POSTAL.Destroy; + cxGridViewPOBLACION.Destroy; + cxGridViewPROVINCIA.Destroy; +end; + +end. 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 00000000..5840a6e2 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm @@ -0,0 +1,9 @@ +inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn + Visible = False + end + 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 00000000..7edeefc8 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas @@ -0,0 +1,72 @@ +unit uViewDetallesAlbaranCliente; + +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, uBizAlbaranesCliente, cxDropDownEdit, + cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox; + +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(TfrViewDetallesArticulos, IViewDetallesAlbaranCliente) + protected + FAlbaran: IBizAlbaranCliente; + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + + procedure AnadirArticulosInterno; 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 + Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); + + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranClienteController).CambiarSignoDetalles(Detalles); +end; + +procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno; +begin + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente); + + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranClienteController).CambiarSignoDetalles(Detalles); +end; + +function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; +end; + +end. 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 00000000..b3209927 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dfm @@ -0,0 +1,204 @@ +inherited frViewDireccionEntregaAlbaranCliente: TfrViewDireccionEntregaAlbaranCliente + 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 + 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 = 281 + end + object ePoblacion: TcxDBTextEdit + Left = 64 + Top = 37 + DataBinding.DataField = 'POBLACION' + 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 = 1 + Width = 41 + end + object eProvincia: TcxDBTextEdit + Left = 64 + Top = 64 + DataBinding.DataField = 'PROVINCIA' + 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 = 3 + Width = 281 + 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 = 281 + 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 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 00000000..c857b8eb --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.pas @@ -0,0 +1,144 @@ +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; + +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; + 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; + FAlbaran : IBizAlbaranCliente; + FController : IAlbaranesClienteController; + 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; + +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; + +constructor TfrViewDireccionEntregaAlbaranCliente.Create(AOwner: TComponent); +begin + inherited; + FAlbaran := 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; +} + 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.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm new file mode 100644 index 00000000..255676e3 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm @@ -0,0 +1,43 @@ +inherited frViewElegirArticulosAlbaranesCliente: TfrViewElegirArticulosAlbaranesCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_NETO: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + 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 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39226.746968310190000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = 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 00000000..f84af6e8 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas @@ -0,0 +1,27 @@ +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase; + +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 00000000..bf3b086d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup @@ -0,0 +1,26 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.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 + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Articulos_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl + + + + 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 00000000..c8f28340 --- /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/Controller/AlbaranesProveedor_controller.bdsproj b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj new file mode 100644 index 00000000..b69f48b6 --- /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.dpk b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk new file mode 100644 index 00000000..92e40525 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk @@ -0,0 +1,61 @@ +package AlbaranesProveedor_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUIBase, + ControllerBase, + Contactos_controller, + dsnap, + vcldb, + adortl, + Articulos_controller, + Inventario_model, + Inventario_controller, + AlbaranesProveedor_model, + AlbaranesProveedor_data, + PedidosProveedor_model, + PedidosProveedor_controller, + Articulos_model, + Articulos_controller; + +contains + uAlbaranesProveedorController in 'uAlbaranesProveedorController.pas', + uDetallesAlbaranProveedorController in 'uDetallesAlbaranProveedorController.pas', + uIEditorAlbaranesProveedor in 'View\uIEditorAlbaranesProveedor.pas', + uIEditorAlbaranProveedor in 'View\uIEditorAlbaranProveedor.pas', + uIEditorElegirAlbaranesProveedor in 'View\uIEditorElegirAlbaranesProveedor.pas', + uArticulosAlbaranProveedorController in 'uArticulosAlbaranProveedorController.pas', + uIEditorElegirArticulosAlbaranesProveedor in 'View\uIEditorElegirArticulosAlbaranesProveedor.pas', + uIEditorDireccionEntregaAlbaranProveedor in 'View\uIEditorDireccionEntregaAlbaranProveedor.pas', + uIEditorAlbaranesDevProveedor in 'View\uIEditorAlbaranesDevProveedor.pas', + uIEditorAlbaranDevProveedor in 'View\uIEditorAlbaranDevProveedor.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.pas new file mode 100644 index 00000000..40a79770 --- /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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.pas new file mode 100644 index 00000000..2719c099 --- /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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.pas new file mode 100644 index 00000000..d6e19625 --- /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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.pas new file mode 100644 index 00000000..0178b42a --- /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/uIEditorDireccionEntregaAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.pas new file mode 100644 index 00000000..a6ac4beb --- /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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.pas new file mode 100644 index 00000000..4bfbf80a --- /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.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas new file mode 100644 index 00000000..14a491e4 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosAlbaranesProveedor; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosAlbaranesProveedor = interface(IEditorElegirArticulos) + ['{CAA16595-482A-4936-875E-F19263772C0D}'] + end; + + +implementation + +end. 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 00000000..c3db2d15 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas @@ -0,0 +1,881 @@ +unit uAlbaranesProveedorController; + +interface + + +uses + SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModuleAlbaranesProveedor, uProveedoresController, + uDetallesAlbaranProveedorController, uBizAlbaranesProveedor, + uBizDireccionesContacto, uBizInventario; + +type + IAlbaranesProveedorController = interface(IObservador) + ['{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; + function BuscarAlbaranesNormales: IBizAlbaranProveedor; + function BuscarAlbaranesDevolucion: IBizAlbaranProveedor; + function BuscarSinFacturar : IBizAlbaranProveedor; + procedure Ver(AAlbaran : IBizAlbaranProveedor); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor); + 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): 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); + end; + + TAlbaranesProveedorController = class(TObservador, 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 métodos 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; + procedure AsignarID(AAlbaran: IBizAlbaranProveedor; const IDNuevo : Integer); + 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranProveedor): 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; + function BuscarAlbaranesNormales: IBizAlbaranProveedor; + function BuscarAlbaranesDevolucion: IBizAlbaranProveedor; + function BuscarSinFacturar : IBizAlbaranProveedor; + function Nuevo : IBizAlbaranProveedor; + procedure Ver(AAlbaran : IBizAlbaranProveedor); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor); + 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; + 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, + uBizPedidosProveedor, uPedidosProveedorController, schInventarioClient_Intf, + uArticulosController, uBizArticulos, uControllerDetallesBase, + schArticulosClient_Intf, uControllerDetallesArticulos, Variants, + uIEditorAlbaranDevProveedor; + + +{ Métodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoProveedor; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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; +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 ('Albarán no asignado (CopiarArticulosAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosAAlbaran)'); + + if not Assigned(AInventarioRecibido) then + raise Exception.Create ('Inventario recibido no asignado (CopiarArticulosAAlbaran)'); + + if not AInventarioRecibido.DataTable.Active then + AInventarioRecibido.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + AArticulosController := TArticulosController.Create; + try + 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 artículo con ID %d (CopiarArticulosAAlbaran)', [AInventarioRecibido.ID_ARTICULO])); + + if (AInventarioRecibido.CANTIDAD <> 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetallesController.AnadirArticulo(ADetalles, AInventarioRecibido.REFERENCIA, tCliente); + ADetalles.Edit; + ADetalles.CANTIDAD := AInventarioRecibido.CANTIDAD; + ADetalles.Post; + end; + +{ AnadirArticulo(ADetalles, ) + ADetalles.Edit; + ADetalles.REFERENCIA := AArticulo.REFERENCIA; + ADetalles.ID_ARTICULO := AArticulo.ID; + ADetalles.CONCEPTO := AArticulo.DESCRIPCION; + ADetalles.IMPORTE_UNIDAD := AArticulo.PRECIO_COSTE; + ADetalles.IMPORTE_TOTAL := AInventarioRecibido.IMPORTE_TOTAL; + ADetalles.DESCUENTO := AInventarioRecibido.DESCUENTO; + ADetalles.IMPORTE_PORTE := AInventarioRecibido.IMPORTE_PORTE; + ADetalles.VISIBLE := AInventarioRecibido.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := AInventarioRecibido.REFERENCIA_PROVEEDOR;} + + AInventarioRecibido.Next; + end; + finally + ADetallesController := NIL; + AArticulosController := NIL; + end; +end; + +{ TAlbaranesProveedorController } + +function TAlbaranesProveedorController.Anadir(AAlbaran: IBizAlbaranProveedor) : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 : TPedidosProveedorController; + APedido : IBizPedidoProveedor; +begin + Result := False; + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignado (Anadir)'); + + if not Assigned(AInventarioRecibido) then + raise Exception.Create ('Inventario recibido 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; + + if not AInventarioRecibido.DataTable.Active then + AInventarioRecibido.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; + + AInventarioRecibido.DataTable.Active := True; + Self.Anadir(AAlbaran); + CopiarPedidoAAlbaran(APedido, AAlbaran); + CopiarArticulosAAlbaran(APedido, AAlbaran, AInventarioRecibido); + 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; + +procedure TAlbaranesProveedorController.AsignarID(AAlbaran: IBizAlbaranProveedor; const IDNuevo : Integer); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignado'); + + if not Assigned(AAlbaran.Detalles) then + raise Exception.Create ('Detalles de albarán no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(AAlbaran.Detalles, IDNuevo, AAlbaran.EsNuevo); + + if AAlbaran.EsNuevo then + begin + AAlbaran.Edit; + AAlbaran.ID := IDNuevo; + AAlbaran.Post; + end; +end; + +function TAlbaranesProveedorController.Buscar(const ID: Integer): IBizAlbaranProveedor; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarAlbaranesDevolucion: IBizAlbaranProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddCondition(fld_AlbaranesProveedorIMPORTE_TOTAL, cLess, 0); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarAlbaranesNormales: IBizAlbaranProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddCondition(fld_AlbaranesProveedorIMPORTE_TOTAL, cMajorOrEqual, 0); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarTodos: IBizAlbaranProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarSinFacturar: IBizAlbaranProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_AlbaranesProveedorID_FACTURA + ' is null'); + CloseBraket; + 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 dirección (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 + 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; + +procedure TAlbaranesProveedorController.DescartarCambios(AAlbaran: IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_ALBARAN := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; + REFERENCIA := ''; + ID_PEDIDO := 0; + ID_FACTURA := 0; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.ValidarAlbaran(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 automáticas 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 albarán'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarán'); + + if (Length(AAlbaran.CALLE) = 0) and (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar una dirección de entrega o almacén para este albarán'); + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarán de de tener al menos un concepto en su contenido'); + + //En caso de ser un Albarán no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarán no puede tener un importe total negativo'); + + //En caso de ser una orden de devolución 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 devolución no puede tener un importe total positivo'); + + //Una orden de devolución debe tener relleno el almacén de salida de material + if (AAlbaran.ID_ALMACEN < 0) or (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar el almacén de salida de esta orden de devolución'); + end; + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := dmUsuarios.LoginInfo.Usuario; + + 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 : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlbaran); + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranProveedor', IEditorAlbaranProveedor, AEditor) + else + CreateEditor('EditorAlbaranDevProveedor', IEditorAlbaranDevProveedor, AEditor); + + with (AEditor as IEditorAlbaranProveedor) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaran := AAlbaran; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerDireccionEntrega(AAlbaran: IBizAlbaranProveedor); +var + AEditor : IEditorDireccionEntregaAlbaranProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + //RecuperarObjetos(AAlbaran); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaAlbaranProveedor', IEditorDireccionEntregaAlbaranProveedor, AEditor); + + with (AEditor as IEditorDireccionEntregaAlbaranProveedor) do + begin + Albaran := AAlbaran; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor); +var + AEditor : IEditorAlbaranesProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesProveedor', IEditorAlbaranesProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor); +var + AEditor : IEditorAlbaranesDevProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesDevProveedor', IEditorAlbaranesDevProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + 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 albarán 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); + try + with AEditor do + begin + Controller := Self; + Albaranes := AAlbaran; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := AlbaranesProveedorSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TAlbaranesProveedorController.Eliminar(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.Delete; + AAlbaran.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + 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 + AAlbaran.Edit; + try + AAlbaran.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AAlbaran.Post; + end; + 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); + CopyDataTable(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesProveedorController.FiltrarEmpresa( + AAlbaran: IBizAlbaranProveedor); +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_AlbaranesProveedorID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + 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; +var + IDNuevo: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + try + if (AAlbaran.EsNuevo) then + IDNuevo := FDataModule.GetNextID(AAlbaran.DataTable.LogicalName) + else + IDNuevo := AAlbaran.ID; + + AsignarID(AAlbaran, IDNuevo); + 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.QuitarDireccionEnvio( + AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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.GetDetallesController: IDetallesAlbaranProveedorController; +begin + Result := FDetallesController; +end; + +end. 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 00000000..2cbf4294 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas @@ -0,0 +1,47 @@ +unit uArticulosAlbaranProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosAlbaranProveedorController = interface(IArticulosController) + ['{8E3C2FF0-9D42-461C-BF14-6E77843E4173}'] + end; + + TArticulosAlbaranProveedorController = class(TArticulosController, IArticulosAlbaranProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosAlbaranProveedorController } + +uses Controls, uIEditorElegirArticulosAlbaranesProveedor, uIEditorElegirArticulos; + +function TArticulosAlbaranProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosAlbaranesProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosAlbaranesProveedor', IEditorElegirArticulosAlbaranesProveedor, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. 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 00000000..af188a22 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas @@ -0,0 +1,123 @@ +unit uDetallesAlbaranProveedorController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesAlbaranProveedor, uIDataModuleAlbaranesProveedor, + uBizArticulos, uBizContactos; + +type + IDetallesAlbaranProveedorController = interface(IControllerDetallesArticulos) + ['{6E35D49A-C78D-481D-93E9-859CD27EB79F}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + end; + + TDetallesAlbaranProveedorController = class(TControllerDetallesArticulos, IDetallesAlbaranProveedorController) + private + FDataModule : IDataModuleAlbaranesProveedor; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Variants, uControllerDetallesBase, uControllerDetallesDTO, uDataModuleAlbaranesProveedor, uArticulosAlbaranProveedorController; + +{ 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); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este albarán de proveedor', True); + Add(ADetalles, AArticulos); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AsignarController; +begin + FArticulosController := TArticulosAlbaranProveedorController.Create; +end; + +procedure TDetallesAlbaranProveedorController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesAlbaranProveedor) do + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_ALBARAN := IDCabecera; + Post + end; +end; + +constructor TDetallesAlbaranProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +destructor TDetallesAlbaranProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranProveedorController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +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; + +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 00000000..74a7685e --- /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.dpk b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk new file mode 100644 index 00000000..0686e22d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk @@ -0,0 +1,41 @@ +package AlbaranesProveedor_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + AlbaranesProveedor_model; + +contains + uDataModuleAlbaranesProveedor in 'uDataModuleAlbaranesProveedor.pas' {DataModuleAlbaranesProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm new file mode 100644 index 00000000..c2d6c6a4 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm @@ -0,0 +1,906 @@ +object DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 373 + Width = 518 + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 40 + Top = 8 + end + object ROMessage: TROBinMessage + Left = 40 + Top = 60 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvAlbaranesProveedor' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 112 + end + object DABinAdapter: TDABINAdapter + Left = 40 + Top = 168 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 40 + Top = 240 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 296 + end + object tbl_AlbaranesProveedor: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha albar'#225'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ped. proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesProveedor' + IndexDefs = <> + Left = 192 + Top = 136 + end + object ds_AlbaranesProveedor: TDADataSource + DataTable = tbl_AlbaranesProveedor + Left = 192 + Top = 80 + end + object tbl_AlbaranesProveedor_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = 11 + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'AlbaranesProveedor_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_AlbaranesProveedor + MasterFields = 'ID' + DetailFields = 'ID_ALBARAN' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesProveedor_Detalles' + IndexDefs = <> + Left = 408 + Top = 128 + end + object ds_AlbaranesProveedor_Detalles: TDADataSource + DataTable = tbl_AlbaranesProveedor_Detalles + Left = 408 + Top = 72 + 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 00000000..ea0f4c6d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas @@ -0,0 +1,151 @@ +unit uDataModuleAlbaranesProveedor; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + uDAClientDataModule, uROTypes, + uIDataModuleAlbaranesProveedor, uBizAlbaranesProveedor, uBizDetallesAlbaranProveedor; + +type + TDataModuleAlbaranesProveedor = class(TDAClientDataModule, IDataModuleAlbaranesProveedor) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + tbl_AlbaranesProveedor: TDACDSDataTable; + ds_AlbaranesProveedor: TDADataSource; + tbl_AlbaranesProveedor_Detalles: TDACDSDataTable; + ds_AlbaranesProveedor_Detalles: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesAlbaranProveedor; + + protected + procedure AsignarClaseNegocio(var APedido: TDACDSDataTable); virtual; + + public + function GetItems : IBizAlbaranProveedor; virtual; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlbaranProveedor; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDAInterfaces, uDataModuleConexion, + uDataTableUtils, schAlbaranesProveedorClient_Intf, uBizContactos; + +{ TdmAlbaranesProveedor } + +procedure TDataModuleAlbaranesProveedor.AsignarClaseNegocio(var APedido: TDACDSDataTable); +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.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_AlbaranesProveedor then + aGeneratorName := 'GEN_ALBARANES_PRO_ID'; + + if DataSetName = nme_AlbaranesProveedor_Detalles then + aGeneratorName := 'GEN_ALBARANES_PRO_DETALLES_ID'; + + Result := (RORemoteService as IsrvAlbaranesProveedor).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleAlbaranesProveedor.NewItem: IBizAlbaranProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesProveedor._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleAlbaranesProveedor._GetDetalles: IBizDetallesAlbaranProveedor; +var + ADetalles : TDACDSDataTable; +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.GetItem(const ID: Integer): IBizAlbaranProveedor; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_AlbaranesProveedorID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetItems: IBizAlbaranProveedor; +var + AAlbaran : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AAlbaran := _CloneDataTable(tbl_AlbaranesProveedor); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AAlbaran.FieldByName(fld_AlbaranesProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + AsignarClaseNegocio(AAlbaran); + + 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 00000000..cc5e2e86 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + 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.dpk b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk new file mode 100644 index 00000000..46f62672 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk @@ -0,0 +1,49 @@ +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} +{%TogetherDiagram 'ModelSupport_AlbaranesProveedor_model\default.txaPackage'} + +requires + DataAbstract_D10, + Base, + Usuarios, + Empresas_controller, + Contactos_model, + GUIBase, + rtl, + dbrtl, + vcl, + dsnap, + vcldb, + adortl; + +contains + uIDataModuleAlbaranesProveedor in 'Data\uIDataModuleAlbaranesProveedor.pas', + uBizDetallesAlbaranProveedor in 'uBizDetallesAlbaranProveedor.pas', + uBizAlbaranesProveedor in 'uBizAlbaranesProveedor.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.drc b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas new file mode 100644 index 00000000..edc4246f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlbaranesProveedor; + +interface + +uses + uBizAlbaranesProveedor; + +type + IDataModuleAlbaranesProveedor = interface + ['{2BAD8B3B-B57D-475C-B528-F82B320B2332}'] + function GetItems: IBizAlbaranProveedor; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlbaranProveedor; + 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 00000000..c8f28340 --- /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 00000000..e69de29b 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 00000000..dcd56cb8 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -0,0 +1,1982 @@ +unit schAlbaranesProveedorClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_DarReferencia = '{5A05B7DE-83D2-48DC-9867-D025C26EF607}'; + RID_AlbaranesProveedor = '{17BC6E11-4D60-418A-A90E-F19D9D2F137D}'; + RID_AlbaranesProveedor_Detalles = '{93185DF7-4D33-422F-BF7D-0FC43C571F40}'; + RID_AlbaranesProveedor_Detalles_Refresh = '{671BF3C5-1B40-4883-9A26-A2C26CCEE774}'; + RID_AlbaranesProveedor_Refresh = '{46514DC4-3CC0-4300-97F0-F2CCE70B5666}'; + + { Data table names } + nme_DarReferencia = 'DarReferencia'; + nme_AlbaranesProveedor = 'AlbaranesProveedor'; + nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles'; + nme_AlbaranesProveedor_Detalles_Refresh = 'AlbaranesProveedor_Detalles_Refresh'; + nme_AlbaranesProveedor_Refresh = 'AlbaranesProveedor_Refresh'; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { AlbaranesProveedor fields } + fld_AlbaranesProveedorID = 'ID'; + fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_AlbaranesProveedorNOMBRE = 'NOMBRE'; + fld_AlbaranesProveedorFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesProveedorREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedorTIPO = 'TIPO'; + fld_AlbaranesProveedorID_ALMACEN = 'ID_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_FAC_PROVEEDOR = 'REF_FAC_PROVEEDOR'; + 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'; + + { AlbaranesProveedor field indexes } + idx_AlbaranesProveedorID = 0; + idx_AlbaranesProveedorID_EMPRESA = 1; + idx_AlbaranesProveedorID_PROVEEDOR = 2; + idx_AlbaranesProveedorNOMBRE = 3; + idx_AlbaranesProveedorFECHA_ALBARAN = 4; + idx_AlbaranesProveedorREFERENCIA = 5; + idx_AlbaranesProveedorTIPO = 6; + idx_AlbaranesProveedorID_ALMACEN = 7; + idx_AlbaranesProveedorNOMBRE_ALMACEN = 8; + idx_AlbaranesProveedorID_PEDIDO = 9; + idx_AlbaranesProveedorREF_PED_PROVEEDOR = 10; + idx_AlbaranesProveedorID_FACTURA = 11; + idx_AlbaranesProveedorREF_FAC_PROVEEDOR = 12; + idx_AlbaranesProveedorCALLE = 13; + idx_AlbaranesProveedorCODIGO_POSTAL = 14; + idx_AlbaranesProveedorPOBLACION = 15; + idx_AlbaranesProveedorPROVINCIA = 16; + idx_AlbaranesProveedorPERSONA_CONTACTO = 17; + idx_AlbaranesProveedorTELEFONO = 18; + idx_AlbaranesProveedorIMPORTE_NETO = 19; + idx_AlbaranesProveedorIMPORTE_PORTE = 20; + idx_AlbaranesProveedorDESCUENTO = 21; + idx_AlbaranesProveedorIMPORTE_DESCUENTO = 22; + idx_AlbaranesProveedorBASE_IMPONIBLE = 23; + idx_AlbaranesProveedorIVA = 24; + idx_AlbaranesProveedorIMPORTE_IVA = 25; + idx_AlbaranesProveedorIMPORTE_TOTAL = 26; + idx_AlbaranesProveedorOBSERVACIONES = 27; + idx_AlbaranesProveedorINCIDENCIAS = 28; + idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 29; + idx_AlbaranesProveedorFECHA_ALTA = 30; + idx_AlbaranesProveedorFECHA_MODIFICACION = 31; + idx_AlbaranesProveedorUSUARIO = 32; + idx_AlbaranesProveedorID_FORMA_PAGO = 33; + + { 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_DetallesREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_AlbaranesProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { AlbaranesProveedor_Detalles field indexes } + idx_AlbaranesProveedor_DetallesID = 0; + idx_AlbaranesProveedor_DetallesID_ALBARAN = 1; + idx_AlbaranesProveedor_DetallesPOSICION = 2; + idx_AlbaranesProveedor_DetallesTIPO_DETALLE = 3; + idx_AlbaranesProveedor_DetallesREFERENCIA = 4; + idx_AlbaranesProveedor_DetallesID_ARTICULO = 5; + idx_AlbaranesProveedor_DetallesCONCEPTO = 6; + idx_AlbaranesProveedor_DetallesCANTIDAD = 7; + idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 8; + idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 9; + idx_AlbaranesProveedor_DetallesDESCUENTO = 10; + idx_AlbaranesProveedor_DetallesIMPORTE_PORTE = 11; + idx_AlbaranesProveedor_DetallesVISIBLE = 12; + idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 13; + + { AlbaranesProveedor_Detalles_Refresh fields } + fld_AlbaranesProveedor_Detalles_RefreshID = 'ID'; + fld_AlbaranesProveedor_Detalles_RefreshID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesProveedor_Detalles_RefreshPOSICION = 'POSICION'; + fld_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesProveedor_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_AlbaranesProveedor_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedor_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedor_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { AlbaranesProveedor_Detalles_Refresh field indexes } + idx_AlbaranesProveedor_Detalles_RefreshID = 0; + idx_AlbaranesProveedor_Detalles_RefreshID_ALBARAN = 1; + idx_AlbaranesProveedor_Detalles_RefreshPOSICION = 2; + idx_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE = 3; + idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA = 4; + idx_AlbaranesProveedor_Detalles_RefreshID_ARTICULO = 5; + idx_AlbaranesProveedor_Detalles_RefreshCONCEPTO = 6; + idx_AlbaranesProveedor_Detalles_RefreshCANTIDAD = 7; + idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD = 8; + idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL = 9; + idx_AlbaranesProveedor_Detalles_RefreshDESCUENTO = 10; + idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE = 11; + idx_AlbaranesProveedor_Detalles_RefreshVISIBLE = 12; + idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { AlbaranesProveedor_Refresh fields } + fld_AlbaranesProveedor_RefreshID = 'ID'; + fld_AlbaranesProveedor_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesProveedor_RefreshID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_AlbaranesProveedor_RefreshNOMBRE = 'NOMBRE'; + fld_AlbaranesProveedor_RefreshFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesProveedor_RefreshREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_RefreshTIPO = 'TIPO'; + fld_AlbaranesProveedor_RefreshID_ALMACEN = 'ID_ALMACEN'; + fld_AlbaranesProveedor_RefreshNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_AlbaranesProveedor_RefreshID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR = 'REF_PED_PROVEEDOR'; + fld_AlbaranesProveedor_RefreshID_FACTURA = 'ID_FACTURA'; + fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR = 'REF_FAC_PROVEEDOR'; + fld_AlbaranesProveedor_RefreshCALLE = 'CALLE'; + fld_AlbaranesProveedor_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesProveedor_RefreshPOBLACION = 'POBLACION'; + fld_AlbaranesProveedor_RefreshPROVINCIA = 'PROVINCIA'; + fld_AlbaranesProveedor_RefreshPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesProveedor_RefreshTELEFONO = 'TELEFONO'; + fld_AlbaranesProveedor_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesProveedor_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedor_RefreshDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_AlbaranesProveedor_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesProveedor_RefreshIVA = 'IVA'; + fld_AlbaranesProveedor_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_AlbaranesProveedor_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedor_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_AlbaranesProveedor_RefreshINCIDENCIAS = 'INCIDENCIAS'; + fld_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_AlbaranesProveedor_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_AlbaranesProveedor_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlbaranesProveedor_RefreshUSUARIO = 'USUARIO'; + fld_AlbaranesProveedor_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + + { AlbaranesProveedor_Refresh field indexes } + idx_AlbaranesProveedor_RefreshID = 0; + idx_AlbaranesProveedor_RefreshID_EMPRESA = 1; + idx_AlbaranesProveedor_RefreshID_PROVEEDOR = 2; + idx_AlbaranesProveedor_RefreshNOMBRE = 3; + idx_AlbaranesProveedor_RefreshFECHA_ALBARAN = 4; + idx_AlbaranesProveedor_RefreshREFERENCIA = 5; + idx_AlbaranesProveedor_RefreshTIPO = 6; + idx_AlbaranesProveedor_RefreshID_ALMACEN = 7; + idx_AlbaranesProveedor_RefreshNOMBRE_ALMACEN = 8; + idx_AlbaranesProveedor_RefreshID_PEDIDO = 9; + idx_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR = 10; + idx_AlbaranesProveedor_RefreshID_FACTURA = 11; + idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR = 12; + idx_AlbaranesProveedor_RefreshCALLE = 13; + idx_AlbaranesProveedor_RefreshCODIGO_POSTAL = 14; + idx_AlbaranesProveedor_RefreshPOBLACION = 15; + idx_AlbaranesProveedor_RefreshPROVINCIA = 16; + idx_AlbaranesProveedor_RefreshPERSONA_CONTACTO = 17; + idx_AlbaranesProveedor_RefreshTELEFONO = 18; + idx_AlbaranesProveedor_RefreshIMPORTE_NETO = 19; + idx_AlbaranesProveedor_RefreshIMPORTE_PORTE = 20; + idx_AlbaranesProveedor_RefreshDESCUENTO = 21; + idx_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO = 22; + idx_AlbaranesProveedor_RefreshBASE_IMPONIBLE = 23; + idx_AlbaranesProveedor_RefreshIVA = 24; + idx_AlbaranesProveedor_RefreshIMPORTE_IVA = 25; + idx_AlbaranesProveedor_RefreshIMPORTE_TOTAL = 26; + idx_AlbaranesProveedor_RefreshOBSERVACIONES = 27; + idx_AlbaranesProveedor_RefreshINCIDENCIAS = 28; + idx_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS = 29; + idx_AlbaranesProveedor_RefreshFECHA_ALTA = 30; + idx_AlbaranesProveedor_RefreshFECHA_MODIFICACION = 31; + idx_AlbaranesProveedor_RefreshUSUARIO = 32; + idx_AlbaranesProveedor_RefreshID_FORMA_PAGO = 33; + +type + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{6BCD4068-462A-4DFD-AD5A-F4C827370E02}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor } + IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) + ['{3F464120-F9AA-47F0-A1EB-7B3BD57C9FE1}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetREF_PED_PROVEEDORValue: String; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetREF_FAC_PROVEEDORValue: String; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + end; + + { TAlbaranesProveedorDataTableRules } + TAlbaranesProveedorDataTableRules = class(TDADataTableRules, IAlbaranesProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_FAC_PROVEEDORValue: String; virtual; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Detalles } + IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{594F6700-525A-419A-B59D-C7E0367E2274}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesProveedor_DetallesDataTableRules } + TAlbaranesProveedor_DetallesDataTableRules = class(TDADataTableRules, IAlbaranesProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Detalles_Refresh } + IAlbaranesProveedor_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{AE1B5612-9B95-4A74-8727-52AE39DD42F4}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesProveedor_Detalles_RefreshDataTableRules } + TAlbaranesProveedor_Detalles_RefreshDataTableRules = class(TDADataTableRules, IAlbaranesProveedor_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Refresh } + IAlbaranesProveedor_Refresh = interface(IDAStronglyTypedDataTable) + ['{43490787-1D12-4B92-A0B2-7E6E78344AEE}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetREF_PED_PROVEEDORValue: String; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetREF_FAC_PROVEEDORValue: String; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + end; + + { TAlbaranesProveedor_RefreshDataTableRules } + TAlbaranesProveedor_RefreshDataTableRules = class(TDADataTableRules, IAlbaranesProveedor_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_FAC_PROVEEDORValue: String; virtual; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TAlbaranesProveedorDataTableRules } +constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesProveedorDataTableRules.Destroy; +begin + inherited; +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.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_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.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.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.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.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.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.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.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.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.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.GetREF_FAC_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FAC_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FAC_PROVEEDOR].AsString := aValue; +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.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.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.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.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.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.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_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.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.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.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.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.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_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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsString := aValue.Text; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsString := aValue.Text; +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.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_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.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.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; + + +{ 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.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.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.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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsInteger := aValue; +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_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.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.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.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.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; + + +{ TAlbaranesProveedor_Detalles_RefreshDataTableRules } +constructor TAlbaranesProveedor_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesProveedor_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TAlbaranesProveedor_RefreshDataTableRules } +constructor TAlbaranesProveedor_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesProveedor_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_EMPRESA].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_PROVEEDOR].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_PROVEEDOR].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshNOMBRE].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshNOMBRE].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetFECHA_ALBARANValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_ALBARAN].AsDateTime; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_ALBARAN].AsDateTime := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshTIPO].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshTIPO].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_ALMACEN].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_ALMACEN].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshNOMBRE_ALMACEN].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshNOMBRE_ALMACEN].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetREF_PED_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_FACTURA].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetREF_FAC_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshCALLE].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshCALLE].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshPOBLACION].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshPOBLACION].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshPROVINCIA].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshPROVINCIA].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshPERSONA_CONTACTO].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshPERSONA_CONTACTO].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshTELEFONO].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshTELEFONO].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIVA].AsFloat; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIVA].AsFloat := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesProveedor_RefreshOBSERVACIONES].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlbaranesProveedor_RefreshINCIDENCIAS].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshINCIDENCIAS].AsString := aValue.Text; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshUSUARIO].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshUSUARIO].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshID_FORMA_PAGO].AsInteger := aValue; +end; + + +initialization + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor_Detalles_Refresh, TAlbaranesProveedor_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor_Refresh, TAlbaranesProveedor_RefreshDataTableRules); + +end. 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 00000000..7ef4a506 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -0,0 +1,2343 @@ +unit schAlbaranesProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_DarReferenciaDelta = '{180D29B7-ECFB-4220-A71C-E353AE49D624}'; + RID_AlbaranesProveedorDelta = '{DA1EC824-AB6A-4817-9DE0-00CCF46AB7A8}'; + RID_AlbaranesProveedor_DetallesDelta = '{04D610A6-9357-416C-8E6A-D2CC470106A8}'; + RID_AlbaranesProveedor_Detalles_RefreshDelta = '{4CF01E9A-B11E-4E9C-AAC8-D8AE44FDAFA0}'; + RID_AlbaranesProveedor_RefreshDelta = '{3DE95ADD-450F-48CE-9885-43BECF24C910}'; + +type + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{180D29B7-ECFB-4220-A71C-E353AE49D624}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedorDelta } + IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) + ['{DA1EC824-AB6A-4817-9DE0-00CCF46AB7A8}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_PEDIDOValue : Integer; + function GetOldREF_PED_PROVEEDORValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_FAC_PROVEEDORValue : 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; + + { 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 OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_ALMACEN : Integer read GetOldID_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_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + 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; + end; + + { TAlbaranesProveedorBusinessProcessorRules } + TAlbaranesProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor, IAlbaranesProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + function GetOldREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_FAC_PROVEEDORValue: String; virtual; + function GetOldREF_FAC_PROVEEDORValue: String; virtual; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property REF_PED_PROVEEDOR : String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property REF_FAC_PROVEEDOR : String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_DetallesDelta } + IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) + ['{04D610A6-9357-416C-8E6A-D2CC470106A8}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesProveedor_DetallesBusinessProcessorRules } + TAlbaranesProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor_Detalles, IAlbaranesProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Detalles_RefreshDelta } + IAlbaranesProveedor_Detalles_RefreshDelta = interface(IAlbaranesProveedor_Detalles_Refresh) + ['{4CF01E9A-B11E-4E9C-AAC8-D8AE44FDAFA0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Float; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules } + TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor_Detalles_Refresh, IAlbaranesProveedor_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_RefreshDelta } + IAlbaranesProveedor_RefreshDelta = interface(IAlbaranesProveedor_Refresh) + ['{3DE95ADD-450F-48CE-9885-43BECF24C910}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_PEDIDOValue : Integer; + function GetOldREF_PED_PROVEEDORValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_FAC_PROVEEDORValue : 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; + + { 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 OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_ALMACEN : Integer read GetOldID_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_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + 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; + end; + + { TAlbaranesProveedor_RefreshBusinessProcessorRules } + TAlbaranesProveedor_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor_Refresh, IAlbaranesProveedor_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + function GetOldREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetREF_FAC_PROVEEDORValue: String; virtual; + function GetOldREF_FAC_PROVEEDORValue: String; virtual; + procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property REF_PED_PROVEEDOR : String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property REF_FAC_PROVEEDOR : String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TAlbaranesProveedorBusinessProcessorRules } +constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_PED_PROVEEDORValue: String; +begin + result := 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; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FAC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FAC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCALLE]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIVA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES] := aValue.Text; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS] := aValue.Text; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := 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; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE] := aValue; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + + +{ TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules } +constructor TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshID]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ALBARAN]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ALBARAN]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ALBARAN] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshPOSICION]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshPOSICION]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshPOSICION] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ARTICULO]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ARTICULO]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshCONCEPTO]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshCONCEPTO]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshCANTIDAD]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshCANTIDAD]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshDESCUENTO]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshDESCUENTO]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshVISIBLE]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshVISIBLE]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshVISIBLE] := aValue; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TAlbaranesProveedor_RefreshBusinessProcessorRules } +constructor TAlbaranesProveedor_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesProveedor_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_EMPRESA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_EMPRESA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_EMPRESA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_PROVEEDOR]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_PROVEEDOR]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_PROVEEDOR] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshNOMBRE]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshNOMBRE]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshNOMBRE] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALBARAN]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALBARAN]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALBARAN] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshTIPO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshTIPO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshTIPO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_ALMACEN]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_ALMACEN]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_ALMACEN] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshNOMBRE_ALMACEN]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshNOMBRE_ALMACEN] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_PEDIDO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_PEDIDO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_PEDIDO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_FACTURA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_FACTURA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_FACTURA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREF_FAC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREF_FAC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshCALLE]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshCALLE]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshCALLE] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshCODIGO_POSTAL]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshCODIGO_POSTAL]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshCODIGO_POSTAL] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPOBLACION]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshPOBLACION]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPOBLACION] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPROVINCIA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshPROVINCIA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPROVINCIA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshPERSONA_CONTACTO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshPERSONA_CONTACTO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshTELEFONO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshTELEFONO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshTELEFONO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_NETO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_NETO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_NETO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_PORTE]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_PORTE] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshDESCUENTO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshDESCUENTO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshDESCUENTO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshBASE_IMPONIBLE]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIVA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIVA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIVA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_IVA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_IVA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_IVA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_TOTAL]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshOBSERVACIONES]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshOBSERVACIONES]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS] := aValue.Text; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALTA]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALTA]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_ALTA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshFECHA_MODIFICACION]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshUSUARIO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshUSUARIO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshUSUARIO] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_FORMA_PAGO]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshID_FORMA_PAGO]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_FORMA_PAGO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedor_Detalles_RefreshDelta, TAlbaranesProveedor_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedor_RefreshDelta, TAlbaranesProveedor_RefreshBusinessProcessorRules); + +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 00000000..22e0a862 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS @@ -0,0 +1,85 @@ +unit uBizAlbaranProveedorServer; + +interface + +uses + schFacturasClienteServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_ALBARAN_PROVEEDOR = 'Server.AlbaranProveedor'; + REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; + REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; + +type + TBizAlbaranProveedorServer = class(TFacturasClienteBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schAlbaranesProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizFacturasClienteServer } + +procedure TBizAlbaranProveedorServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + CodigoReferencia: String; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; + if aChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] < 0 then + CodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + CodigoReferencia := REF_ALBARANES_PROVEEDOR; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'ID_EMPRESA'], [CodigoReferencia, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_PROVEEDOR, TBizAlbaranProveedorServer); + +end. 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 00000000..6b7489d6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas @@ -0,0 +1,285 @@ +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 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; + +{ 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; +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_ALBARAN := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; + TIPO := CTE_TIPO_ALBARAN; + // ALMACÉN PUESTO A CAPÓN Y PROVISIONAL + ID_ALMACEN := 2; +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); +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 + DataTable.Edit; + ID_PROVEEDOR := FProveedor.ID; + 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_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.pas b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas new file mode 100644 index 00000000..67193231 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas @@ -0,0 +1,50 @@ +unit uBizDetallesAlbaranProveedor; + +interface + +uses + uDADataTable, schAlbaranesProveedorClient_Intf; + +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) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizDetallesAlbaranProveedor } + +uses + uDataTableUtils; + + +constructor TBizDetallesAlbaranProveedor.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesAlbaranProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +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 00000000..76833382 --- /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.dpk b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk new file mode 100644 index 00000000..5c59147b --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk @@ -0,0 +1,42 @@ +package AlbaranesProveedor_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + AlbaranesProveedor_view, + AlbaranesProveedor_controller; + +contains + uPluginAlbaranesProveedor in 'uPluginAlbaranesProveedor.pas' {PluginAlbaranesProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm new file mode 100644 index 00000000..0bf39351 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm @@ -0,0 +1,516 @@ +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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000003934944415478DAB5946B6C536518 + C77F675D2783B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B2285131 + 9068FCA0805C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD432332 + 18B22801A96CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFF + DFFF73935455E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484 + ABFAAA99FDD5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE + 85AF8F1C7F304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7 + BFD3ACE97307AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7 + F66145B99B0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D9895877 + 7D39279A7E898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0B + A86F3D8FB3E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C + 9C815C3B8F6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD81897 + 02D7A73BC93E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F + 282307430C3F03BD734A884B417238C036E70E56867F273829EA3F2515CB9385 + 0C2FB88A758D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E37 + 3DE50E66F75FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D + 0B7E731910BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1 + A46970C32A2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858 + F46847C79DD0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F8 + 3DEE0805E398F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D + 60F982E55C3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BD + B9323563B4D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4 + C443523A64BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B73 + 2E2CDA2B4A561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911 + E0DA9AF4FE2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5 + 421075543CA7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301 + BD62F2F7C023769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC + 287A429F88334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73B + A7F7AF11C857A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669D + A7F7EB63EA6F8A0E921A675CAE400000000049454E44AE426082} + 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 = 104 + Action = actAlbaranesProveedor + end + object rdenesdedevolucin1: TMenuItem + Tag = 105 + 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> + 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> + 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 00000000..46af0dbd --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.pas @@ -0,0 +1,88 @@ +unit uPluginAlbaranesProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCAlbaranesProveedor = interface(IInterface) + ['{69EA97C0-7AEE-4D5A-80C8-402DDB3CE59E}'] + end; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + 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; + uAlbaranesProveedorViewRegister.RegisterViews; +end; + +destructor TPluginAlbaranesProveedor.Destroy; +begin + uAlbaranesProveedorViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginAlbaranesProveedor); + +finalization + UnRegisterModuleClass(TPluginAlbaranesProveedor); + +end. 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 00000000..1e08a66c --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -0,0 +1,2918 @@ +object srvAlbaranesProveedor: TsrvAlbaranesProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesProveedor + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 208 + Width = 384 + object schAlbaranesProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + + 'IGO'#10'AND ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN,' + + ' '#10' REFERENCIA, TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO,'#10' ' + + ' REF_PED_PROVEEDOR, ID_FACTURA, REF_FAC_PROVEEDOR, CALLE, CODI' + + 'GO_POSTAL,'#10' POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO,' + + ' IMPORTE_NETO, '#10' IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO,' + + ' BASE_IMPONIBLE, '#10' IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACI' + + 'ONES, INCIDENCIAS, '#10' INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_M' + + 'ODIFICACION, '#10' USUARIO, ID_FORMA_PAGO'#10' FROM'#10' V_ALBARANES_' + + 'PROVEEDOR' + StatementType = stSQL + 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 = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_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 = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'REF_PED_PROVEEDOR' + TableField = 'REF_PED_PROVEEDOR' + end + item + DatasetField = 'REF_FAC_PROVEEDOR' + TableField = 'REF_FAC_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'AlbaranesProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + 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.IMPORTE_UNIDAD, ALBARANES_PROVEEDO' + + 'R_DETALLES.IMPORTE_TOTAL,'#10' ALBARANES_PROVEEDOR_DETALLES.VISIB' + + 'LE,'#10#10' ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PRO' + + 'VEEDOR_DETALLES.DESCUENTO,'#10' ALBARANES_PROVEEDOR_DETALLES.IMPO' + + 'RTE_PORTE,'#10' ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV a' + + 's REFERENCIA_PROVEEDOR'#10#10'FROM ALBARANES_PROVEEDOR_DETALLES'#10'LEFT J' + + 'OIN ARTICULOS ON ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTI' + + 'CULOS.ID'#10'WHERE ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = :ID_ALB' + + 'ARAN'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'AlbaranesProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + 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.IMPORTE_UNIDAD, ALBARANES_PROVEEDO' + + 'R_DETALLES.IMPORTE_TOTAL,'#10' ALBARANES_PROVEEDOR_DETALLES.VISIB' + + 'LE,'#10#10' ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PRO' + + 'VEEDOR_DETALLES.DESCUENTO,'#10' ALBARANES_PROVEEDOR_DETALLES.IMPO' + + 'RTE_PORTE,'#10' ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV a' + + 's REFERENCIA_PROVEEDOR'#10#10'FROM ALBARANES_PROVEEDOR_DETALLES'#10'LEFT J' + + 'OIN ARTICULOS ON ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTI' + + 'CULOS.ID'#10'WHERE ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = :ID_ALB' + + 'ARAN'#10'AND ALBARANES_PROVEEDOR_DETALLES.ID = :ID'#10'ORDER BY POSICION' + + ';' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'AlbaranesProveedor_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN,' + + ' '#10' REFERENCIA, TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO,'#10' ' + + ' REF_PED_PROVEEDOR, ID_FACTURA, REF_FAC_PROVEEDOR, CALLE, CODI' + + 'GO_POSTAL,'#10' POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO,' + + ' IMPORTE_NETO, '#10' IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO,' + + ' BASE_IMPONIBLE, '#10' IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACI' + + 'ONES, INCIDENCIAS, '#10' INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_M' + + 'ODIFICACION, '#10' USUARIO, ID_FORMA_PAGO'#10' FROM'#10' V_ALBARANES_' + + 'PROVEEDOR'#10'WHERE V_ALBARANES_PROVEEDOR.ID = :ID' + StatementType = stSQL + 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 = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_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 = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'REF_PED_PROVEEDOR' + TableField = 'REF_PED_PROVEEDOR' + end + item + DatasetField = 'REF_FAC_PROVEEDOR' + TableField = 'REF_FAC_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'AlbaranesProveedor_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'INSERT INTO ALBARANES_PROVEEDOR ('#10' ID,'#10' ID_EMPRESA,'#10' ID' + + '_PROVEEDOR,'#10' FECHA_ALBARAN,'#10' ID_PEDIDO,'#10' ID_FACTURA,'#10' ' + + ' REFERENCIA,'#10' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' P' + + 'ROVINCIA,'#10' PERSONA_CONTACTO,'#10' TELEFONO,'#10' BASE_IMPONIBLE' + + ','#10' DESCUENTO,'#10' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA' + + ','#10' IMPORTE_TOTAL,'#10' OBSERVACIONES,'#10' INCIDENCIAS,'#10' INC' + + 'IDENCIAS_ACTIVAS,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' US' + + 'UARIO,'#10' ID_ALMACEN,'#10' ID_FORMA_PAGO,'#10' IMPORTE_NETO,'#10' ' + + 'IMPORTE_PORTE)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :ID_PROV' + + 'EEDOR,'#10' :FECHA_ALBARAN,'#10' :ID_PEDIDO,'#10' :ID_FACTURA,'#10' ' + + ':REFERENCIA,'#10' :CALLE,'#10' :CODIGO_POSTAL,'#10' :POBLACION,'#10' ' + + ' :PROVINCIA,'#10' :PERSONA_CONTACTO,'#10' :TELEFONO,'#10' :BASE_IMP' + + 'ONIBLE,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :I' + + 'MPORTE_IVA,'#10' :IMPORTE_TOTAL,'#10' :OBSERVACIONES,'#10' :INCIDEN' + + 'CIAS,'#10' :INCIDENCIAS_ACTIVAS,'#10' :FECHA_ALTA,'#10' :FECHA_MODI' + + 'FICACION,'#10' :USUARIO,'#10' :ID_ALMACEN,'#10' :ID_FORMA_PAGO,'#10' ' + + ' :IMPORTE_NETO,'#10' :IMPORTE_PORTE);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'UPDATE ALBARANES_PROVEEDOR'#10' SET'#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + + ' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' FECHA_ALBARAN = :FECHA_ALBA' + + 'RAN,'#10' ID_PEDIDO = :ID_PEDIDO,'#10' ID_FACTURA = :ID_FACTURA,'#10' ' + + ' REFERENCIA = :REFERENCIA,'#10' CALLE = :CALLE,'#10' CODIGO_POST' + + 'AL = :CODIGO_POSTAL,'#10' POBLACION = :POBLACION,'#10' PROVINCIA =' + + ' :PROVINCIA,'#10' PERSONA_CONTACTO = :PERSONA_CONTACTO,'#10' TELEF' + + 'ONO = :TELEFONO,'#10' BASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESCU' + + 'ENTO = :DESCUENTO,'#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO,'#10' ' + + ' IVA = :IVA,'#10' IMPORTE_IVA = :IMPORTE_IVA,'#10' IMPORTE_TOTAL' + + ' = :IMPORTE_TOTAL,'#10' OBSERVACIONES = :OBSERVACIONES,'#10' INCID' + + 'ENCIAS = :INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_AC' + + 'TIVAS,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION = :F' + + 'ECHA_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_PORTE'#10' WHERE'#10' (ID ' + + '= :OLD_ID);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesProveedor' + end + item + Params = < + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO ALBARANES_PROVEEDOR_DETALLES'#10' (CANTIDAD, POSICI' + + 'ON, ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, '#10' IMPORTE_TO' + + 'TAL, VISIBLE, ID_ALBARAN,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_P' + + 'ORTE)'#10' VALUES'#10' (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :C' + + 'ONCEPTO, '#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_AL' + + 'BARAN,'#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'UPDATE ALBARANES_PROVEEDOR_DETALLES'#10' SET '#10' CANTIDAD = :CANTI' + + 'DAD, '#10' POSICION = :POSICION, '#10' ID = :ID, '#10' TIPO_DETALLE' + + ' = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' IMPORTE_UNIDAD' + + ' = :IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' VI' + + 'SIBLE = :VISIBLE, '#10' ID_ALBARAN = :ID_ALBARAN,'#10' ID_ARTICULO' + + ' = :ID_ARTICULO,'#10' DESCUENTO = :DESCUENTO,'#10' IMPORTE_PORTE =' + + ' :IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesProveedor_Detalles' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert AlbaranesProveedor' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert AlbaranesProveedor_Detalles' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor_Detalles' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor_Detalles' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'AlbaranesProveedor' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object bpAlbaranesProveedor: TDABusinessProcessor + Schema = schAlbaranesProveedor + InsertCommandName = 'Insert_AlbaranesProveedor' + DeleteCommandName = 'Delete_AlbaranesProveedor' + UpdateCommandName = 'Update_AlbaranesProveedor' + RefreshDatasetName = 'AlbaranesProveedor_Refresh' + ReferencedDataset = 'AlbaranesProveedor' + ProcessorOptions = [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' + RefreshDatasetName = 'AlbaranesProveedor_Detalles_Refresh' + ReferencedDataset = 'AlbaranesProveedor_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'AlbaranesProveedor_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Proveedor' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TIPO_DETALLE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONCEPTO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'VISIBLE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_FECHA_ALBARAN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha albar'#225'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCUENTO' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_PORTE' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALMACEN' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de env'#237'o' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_FECHA_RECEPCION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de recepci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ped. proveedor' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REF_FAC_PROVEEDOR' + Alignment = taLeftJustify + end> + Left = 48 + Top = 128 + 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 00000000..fa605c0a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas @@ -0,0 +1,98 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvAlbaranesProveedor } + TsrvAlbaranesProveedor = class(TDARemoteService, IsrvAlbaranesProveedor) + DABINAdapter: TDABINAdapter; + bpAlbaranesProveedor: TDABusinessProcessor; + bpAlbaranesProveedor_Detalles: TDABusinessProcessor; + schAlbaranesProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvAlbaranesProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; +// function GenerateReport(const ID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesProveedorClient_Intf, uRestriccionesUsuarioUtils, + uBizAlbaranProveedorServer; +// uRptAlbaranesProveedor_Server; + +{ uRORemoteDataModule, + fServerForm, Variants, IB, schAlbaranesProveedorClient_Intf; +} +procedure Create_srvAlbaranesProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesProveedor.Create(NIL); +end; + +{ srvAlbaranesProveedor } +procedure TsrvAlbaranesProveedor.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvAlbaranesProveedor.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..13aa2673 --- /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.dpk b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk new file mode 100644 index 00000000..94f853ed --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk @@ -0,0 +1,114 @@ +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 + rtl, + vcl, + dbrtl, + vcldb, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + GUIBase, + Contactos_model, + Contactos_view, + DataAbstract_D10, + Empresas_controller, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + JvGlobusD10R, + VclSmp, + vclie, + Articulos_view, + dxLayoutControlD10, + AlbaranesProveedor_model, + AlbaranesProveedor_controller, + AlbaranesProveedor_data, + Almacenes_model, + Almacenes_controller, + JSDialog100, + AlbProv_FacProv_relation, + PedProv_AlbProv_relation; + +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}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas new file mode 100644 index 00000000..5b772c51 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas @@ -0,0 +1,38 @@ +unit uAlbaranesProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorAlbaranesProveedor, uEditorAlbaranProveedor, + uEditorElegirArticulosAlbaranProveedor, uEditorDireccionEntregaAlbaranProveedor, + uEditorElegirAlbaranesProveedor, uEditorAlbaranesDevProveedor, uEditorAlbaranDevProveedor; + +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'); +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); +end; + +end. + 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 00000000..5239c24d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dfm @@ -0,0 +1,212 @@ +inherited fEditorAlbaranDevProveedor: TfEditorAlbaranDevProveedor + Caption = 'Nueva orden de devoluci'#243'n de proveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + 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 + 4D410000B18E7CFB5193000003934944415478DAB5946B6C536518C77F675D27 + 83B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B22851319068FCA080 + 5C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD43233218B22801A9 + 6CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFFDFFF739354 + 55E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484ABFAAA99FD + D5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE85AF8F1C7F + 304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7BFD3ACE973 + 07AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7F66145B99B + 0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D98958777D39279A7E + 898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0BA86F3D8FB3 + E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C9C815C3B8F + 6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD8189702D7A73BC9 + 3E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F282307430C + 3F03BD734A884B417238C036E70E56867F273829EA3F2515CB93850C2FB88A75 + 8D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E373DE50E66F7 + 5FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D0B7E731910 + BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1A46970C32A + 2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858F46847C79D + D0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F83DEE0805E3 + 98F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D60F982E55C + 3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BDB9323563B4 + D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4C443523A64 + BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B732E2CDA2B4A + 561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911E0DA9AF4FE + 2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5421075543C + A7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301BD62F2F7C0 + 23769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC287A429F88 + 334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73BA7F7AF11C8 + 57A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669DA7F7EB63EA + 6F8A0E921A675CAE400000000049454E44AE426082} + end + end + inherited pgPaginas: TPageControl + inherited pagInicidencias: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 757 + ExplicitHeight = 397 + 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 Bevel1: TBevel + Width = 73 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Height = 30 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Width = 21 + ExplicitWidth = 21 + end + inherited ImporteDto: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited edtIVA: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited ImporteBase: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited ImporteRE: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + ExplicitWidth = 81 + Width = 81 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + ExplicitWidth = 219 + Width = 219 + 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 00000000..e330d00f --- /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; + +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 + cxControls, 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 devolución?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(FAlbaran); + inherited + end +end; + +procedure TfEditorAlbaranDevProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + //inherited; <- No descomentar. No hacer la parte del padre (por el mensaje) + bEsNuevo := False; + + 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 devolución se ha dado de alta con el código ' + 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 devolución'); + 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 devolución de proveedor' + else + FTitulo := 'Orden de devolución de proveedor' + ' - ' + FAlbaran.Proveedor.Nombre; + end; + + inherited PonerTitulos(FTitulo); +end; + +end. 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 00000000..9157771f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm @@ -0,0 +1,514 @@ +inherited fEditorAlbaranProveedor: TfEditorAlbaranProveedor + Left = 332 + Top = 147 + Caption = 'Nuevo albar'#225'n de proveedor' + ClientHeight = 565 + ClientWidth = 765 + OnClose = CustomEditorClose + ExplicitWidth = 773 + ExplicitHeight = 599 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 765 + Caption = 'Nuevo albar'#225'n de proveedor' + ExplicitWidth = 765 + inherited Image1: TImage + Left = 738 + 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 + end + inherited TBXDock: TTBXDock + Width = 765 + ExplicitWidth = 765 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 324 + 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 = 765 + Height = 425 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 765 + ExplicitHeight = 425 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 757 + ExplicitHeight = 397 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor + Left = 0 + Top = 0 + Width = 757 + Height = 397 + 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 = 757 + ExplicitHeight = 397 + inherited ToolBar1: TToolBar + Width = 757 + ExplicitWidth = 757 + inherited UpDown1: TUpDown + Left = 237 + ExplicitLeft = 237 + end + inherited ToolButton13: TToolButton + Left = 254 + ExplicitLeft = 254 + end + inherited ToolButton6: TToolButton + Left = 262 + ExplicitLeft = 262 + end + inherited ToolButton7: TToolButton + Left = 296 + ExplicitLeft = 296 + end + inherited ToolButton8: TToolButton + Left = 330 + ExplicitLeft = 330 + end + inherited ToolButton12: TToolButton + Left = 364 + ExplicitLeft = 364 + end + inherited ToolButton9: TToolButton + Left = 372 + ExplicitLeft = 372 + end + inherited ToolButton10: TToolButton + Left = 406 + ExplicitLeft = 406 + end + inherited ToolButton11: TToolButton + Left = 440 + ExplicitLeft = 440 + end + end + inherited cxGrid: TcxGrid + Width = 757 + Height = 325 + ExplicitWidth = 757 + ExplicitHeight = 325 + end + inherited TBXDock1: TTBXDock + Width = 757 + ExplicitTop = 46 + ExplicitWidth = 757 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + inline frViewIncidenciasCli: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 757 + Height = 397 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 757 + ExplicitHeight = 397 + inherited pnlSup: TPanel + Width = 757 + ExplicitWidth = 757 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 757 + Height = 369 + ExplicitWidth = 757 + ExplicitHeight = 369 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 734 + ExplicitHeight = 336 + Height = 336 + Width = 734 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 546 + Width = 765 + Panels = < + item + Width = 200 + end> + ExplicitTop = 546 + ExplicitWidth = 765 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 501 + 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 = 501 + ExplicitWidth = 765 + ExplicitHeight = 45 + inherited dxLayoutControl1: TdxLayoutControl + Width = 765 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 765 + inherited Bevel1: TBevel + Left = 93 + Top = 92 + Width = 73 + ExplicitLeft = 93 + ExplicitTop = 92 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 379 + Top = 11 + Height = 30 + ExplicitLeft = 379 + ExplicitTop = 11 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 491 + Top = 92 + Width = 21 + ExplicitLeft = 491 + ExplicitTop = 92 + ExplicitWidth = 21 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 164 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 164 + ExplicitTop = 112 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 562 + Top = 38 + Style.IsFontAssigned = True + ExplicitLeft = 562 + ExplicitTop = 38 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 492 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 492 + ExplicitTop = 112 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 93 + Top = 112 + Properties.OnValidate = frViewTotales1edtDescuentoPropertiesValidate + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 112 + end + inherited edtIVA: TcxDBSpinEdit + Left = 491 + Top = 38 + Properties.OnValidate = frViewTotales1edtIVAPropertiesValidate + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 38 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 491 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 11 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 491 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 65 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 562 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 562 + ExplicitTop = 65 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 93 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 11 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 93 + Top = 139 + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 139 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 93 + Top = 38 + DataBinding.DataField = '' + DataBinding.DataSource = nil + ExplicitLeft = 93 + ExplicitTop = 38 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 231 + Top = 38 + ExplicitLeft = 231 + ExplicitTop = 38 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 93 + Top = 65 + DataBinding.DataField = '' + ExplicitLeft = 93 + ExplicitTop = 65 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: 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 00000000..a83094c7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas @@ -0,0 +1,302 @@ +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; + +type + TfEditorAlbaranProveedor = class(TfEditorDBItem, IEditorAlbaranProveedor) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); override; + 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 actEliminarUpdate(Sender: TObject); + +// procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(Sender: TObject); + + 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; + + 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; + +{$R *.dfm} + +{ TfEditorAlbaranProveedor } + +{ +**************************** TfEditorAlbaranProveedor **************************** +} +procedure TfEditorAlbaranProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (Albaran.REF_FAC_PROVEEDOR = ''); +end; + +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; + FAlbaran.IMPORTE_PORTE := DisplayValue; +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; + bEsNuevo := False; + + 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; + +procedure TfEditorAlbaranProveedor.OnProveedorChanged(Sender: TObject); +var + AProveedoresController : IProveedoresController; + ADireccion : IBizDireccionesContacto; +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 + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Proveedor); + end; +end; + +procedure TfEditorAlbaranProveedor.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +begin + inherited; + if (not Assigned(FAlbaran)) or (FAlbaran.ID_PROVEEDOR = ID_NULO) 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 + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorAlbaranProveedor.SetController(const Value: IAlbaranesProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewAlbaran.ViewProveedorAlbaran.Controller := Controller.ProveedorController; + 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 + FViewAlbaran.Albaran := FAlbaran; + ViewAlbaran.ViewProveedorAlbaran.Proveedor := FAlbaran.Proveedor; + ViewAlbaran.ViewProveedorAlbaran.OnProveedorChanged := OnProveedorChanged; + frViewDetallesAlbaranProveedor1.Detalles := FAlbaran.Detalles; + frViewDetallesAlbaranProveedor1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el proveedor seleccionado + 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.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm new file mode 100644 index 00000000..9b32d7f6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm @@ -0,0 +1,864 @@ +inherited fEditorAlbaranesDevProveedor: TfEditorAlbaranesDevProveedor + Caption = 'Lista de '#243'rdenes de devoluci'#243'n de proveedor' + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de '#243'rdenes de devoluci'#243'n de proveedor' + inherited Image1: TImage + 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 + 4D410000B18E7CFB5193000003934944415478DAB5946B6C536518C77F675D27 + 83B2D942B699A1312C6E71C8C216405DB1C89005C5CC48B22851319068FCA080 + 5C0C0435247E7159B64F2A830F4688CC0F4B0CB78D21D9AD43233218B22801A9 + 6CEE3EDA33D6B1A6B79DE37B0E8CADF414DBA84FF2E47DCFE5FDFFDFFF739354 + 55E5FF346926C19193E7FE33B6375E7E5A3224101F12069B9C5484ABFAAA99FD + D5AD5C6CFC2A36C173DB5B2200DAAB57C5049FF96FC367C51CFABE85AF8F1C7F + 304122377F7E571BC9790B69AD6964B46D23DF1E6BFB67022305F7BFD3ACE973 + 07AB773B39DB724D7F7637BFC97727DBFF9D025511B1161E16B7D7F66145B99B + 0345DFD735FC98B882784C53D1DBF81A477FF8393E8229D98958777D39279A7E + 898FE0FECAF18F8CE0A93BAC87E2D10F76214952C477EDCCE10F0BA86F3D8FB3 + E6209B07DA5B067BDD150F24980A95C53B44C5B92D2CCAC940C97C9C815C3B8F + 6DDF8363476B44111CD890C18DCA7D58BB9C8CF68FF86EFAD8189702D7A73BC9 + 3E5E85C829AA358BE49C028EBABB18B50D32A5C3D26726D763C33F282307430C + 3F03BD734A884B417238C036E70E56867F273829EA3F2515CB93850C2FB88A75 + 8D87BE6F52912E98F0C8B7F1CD86799BE1D71EE89B284920076E373DE50E66F7 + 5FD149428A8465612E83634398DC7EC66E0774F0F9EFC1A53F203D0B7E731910 + BCFEE232BD3B8D9AEBADDE12165F1487C3E82433DD2B62E55907E1A46970C32A + 2A2F5DAA77A7D1FC39B049A24CBCEEFE184CA169F080F094327858F46847C79D + D0380A9B71761A2858BFBA88D2BD670D096A0481C955C0929B03F83DEE0805E3 + 98F9B3B89050BA4507D7CC90A06CD5125EFAE4A7E82E521576766D60F982E55C + 3F554F508429A0B998D0E1BB24EA5CB0BE2DD4CC2736C13A47C1BDB9323563B4 + D9237F5941BE7C85CB675A19BF35AE83CF754056295CAE86B1BFB4C443523A64 + BF0B666B0C82B5F6A7A2C0C79A1AC8A9AB646858A6FB7A9F7E5B732E2CDA2B4A + 561C0F4CC0B55A51F78D9A52911F1B6488523DDF6340F0C2B3F911E0DA9AF4FE + 2BD82686E9B8E4D26F1E16E5683F083E6D1FBAE3A1209CA94D21F5421075543C + A7CDC1E49DC88C2258B92C4F075526A7C772A07237BE13B5C8E301BD62F2F7C0 + 23769047A6C143626D6E9B459ACDCFAD53D9585CFD5AE3574511AC287A429F88 + 334DEAEF21B3FA234C3E2FD615D0396F56AC818A1C2AA6DE9BC73BA7F7AF11C8 + 57A308AABE386478304D80AFBF710C4F5121CA43E698041AB8669DA7F7EB63EA + 6F8A0E921A675CAE400000000049454E44AE426082} + 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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000001FF4944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A0093D32914C5FFF699816964F1AFDB0D19E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C0CBB55A0C2BB71CC16D00CCD9602F00 + E5FEFCF907B759C8FF32C3D3951A0C6B771CC36F00CC253F761A3370B89F85DB + 2C1E7C8DE1C15255864D7B4EE2370066F3E7DB87195E2C8EC3E723170C03FEEC + 356560713E0D963DAB12C0206AE6CEC01BD2CFC02F200009CC776F191ECE99C6 + C0AAFE9261FBCA8D0C1806809C0DF3F3431F31061D6E318623AE160C1659760C + 3F9FBC63B85BB79EE1CBCB0F0C572CD31818EE4E44189011E5C6C0E67A06C57D + A7247C18E4AEFE6060E6E264786563C8F0F5F045866F1CEC0C86DD7E0C0B6F78 + 31306F4F4518901CE60CB61516EA92A1D7192E9B8730B0584D66F89B13CCF0F5 + CF7F864F42820C96F3C21898FFFD61987D2B08D580B820079428938BBC0536E0 + 9B7C2903635B39C3AB0FDF19BE323033E895583328988B32CC7E95826A40949F + 1D5C33CCA0AF25460CFC8F59186E3C79C9A059E7C6F070FB75865B9B6F33D8E6 + 6831EC31EE413520D4CB9A61F5B6A3A871343581E1D1CD970CF722CB18FE583A + 82C5184F1E6260DEB482E1AF472003D39755080340090323923F9C6550FF708D + E1979100AAC4F7BFC064CAC060A7C5E20200AAB168A94D3B55AF000000004945 + 4E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + 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 00000000..50982819 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas @@ -0,0 +1,51 @@ +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; + +type + + TfEditorAlbaranesDevProveedor = class(TfEditorAlbaranesProveedor, IEditorAlbaranesDevProveedor) + protected + procedure AsignarVista; override; + procedure NuevoInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.dfm} + +uses + uDataModuleUsuarios, uViewAlbaranesDevProveedor; + +{ TfEditorAlbaranesDevProveedor } + +procedure TfEditorAlbaranesDevProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesDevProveedor) as IViewAlbaranesDevProveedor; +end; + +procedure TfEditorAlbaranesDevProveedor.NuevoInterno; +begin +// inherited; + if FController.AnadirAlbaranDev(Albaranes) then + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesDevProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de órdenes de devolución de proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. 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 00000000..4362c97c --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm @@ -0,0 +1,1901 @@ +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 + object TBXSeparatorItem17: TTBXSeparatorItem [8] + end + object TBXItem38: TTBXItem [9] + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 606 + 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 + Caption = 'Generar factura' + ImageIndex = 23 + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + 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> + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited GridPopupMenu: TPopupMenu + inherited N2: TMenuItem + Visible = False + 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 +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 00000000..2f4b6816 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas @@ -0,0 +1,220 @@ +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; + +type + TfEditorAlbaranesProveedor = class(TfEditorGridBase, IEditorAlbaranesProveedor) + actGenerarFactura: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + JsNuevoAlbaranDialog: TJSDialog; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actEliminarUpdate(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; + + //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, uGenerarFacturasProvAlbProvUtils, + uGenerarAlbaranesProvUtils, uEditorBase, schAlbaranesProveedorClient_Intf; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesProveedor *************************** +} +procedure TfEditorAlbaranesProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (Albaranes.REF_FAC_PROVEEDOR = ''); +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaExecute(Sender: TObject); +begin + inherited; + GenerarFacturaProv(Albaranes.ID); + actRefrescar.Execute; +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and (Albaranes.REF_FAC_PROVEEDOR = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesProveedor) as IViewAlbaranesProveedor; +end; + +constructor TfEditorAlbaranesProveedor.Create(AOwner: TComponent); +begin + inherited; + 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; +begin + if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Albaranes); + inherited; + end; +end; + +procedure TfEditorAlbaranesProveedor.FormShow(Sender: TObject); +begin + 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 TfEditorAlbaranesProveedor.GetController: IAlbaranesProveedorController; +begin + Result := FController; +end; + +procedure TfEditorAlbaranesProveedor.ImprimirInterno; +begin + inherited; +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.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (ATitulo = '') then + FTitulo := 'Lista de albaranes de proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE + else + FTitulo := ATitulo; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesProveedor.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorAlbaranesProveedor.SetController(const Value: IAlbaranesProveedorController); +begin + FController := Value; +end; + +procedure TfEditorAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor); +begin + FAlbaranes := Value; + dsDataTable.DataTable := FAlbaranes.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes; +end; + +end. 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 00000000..e00707ce --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dfm @@ -0,0 +1,157 @@ +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 + 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 Label2: TLabel + Left = 20 + Top = 89 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Poblaci'#243'n:' + end + object Label3: TLabel + Left = 20 + Top = 117 + 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 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 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 ePoblacion: TDBEdit + Left = 135 + Top = 86 + Width = 210 + Height = 21 + DataField = 'POBLACION' + DataSource = dsDireccion + TabOrder = 3 + end + object eProvincia: TDBEdit + Left = 135 + Top = 114 + Width = 210 + Height = 21 + DataField = 'PROVINCIA' + DataSource = dsDireccion + TabOrder = 4 + end + object eCodigoPostal: TDBEdit + Left = 135 + Top = 140 + Width = 210 + Height = 21 + DataField = 'CODIGO_POSTAL' + DataSource = dsDireccion + TabOrder = 5 + end + object ePersonaContacto: TDBEdit + Left = 135 + Top = 182 + Width = 210 + Height = 21 + DataField = 'PERSONA_CONTACTO' + DataSource = dsDireccion + TabOrder = 6 + end + object eTelefono: TDBEdit + Left = 136 + Top = 207 + Width = 210 + Height = 21 + DataField = 'TELEFONO' + DataSource = dsDireccion + TabOrder = 7 + 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 00000000..79acd092 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas @@ -0,0 +1,92 @@ +unit uEditorDireccionEntregaAlbaranProveedor; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorDireccionEntregaAlbaranProveedor, uBizAlbaranesProveedor; + +type + TfEditorDireccionEntregaAlbaranProveedor = class(TForm, IEditorDireccionEntregaAlbaranProveedor) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eDireccion: TDBEdit; + ePoblacion: TDBEdit; + eProvincia: TDBEdit; + eCodigoPostal: TDBEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + dsDireccion: TDADataSource; + Label6: TLabel; + ePersonaContacto: TDBEdit; + Label7: TLabel; + eTelefono: TDBEdit; + + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + + private + pDireccion: String; + pPoblacion: String; + pProvincia: String; + pCodigoPostal: String; + pPersonaContacto: String; + pTelefono: String; + + FAlbaran : IBizAlbaranProveedor; + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + end; + +implementation +{$R *.dfm} + + +{ TfEditorDireccionEntrega } + +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; + ePoblacion.Field.Value := pPoblacion; + eProvincia.Field.Value := pProvincia; + eCodigoPostal.Field.Value := pCodigoPostal; + ePersonaContacto.Field.Value := pPersonaContacto; + eTelefono.Field.Value := pTelefono; + end; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.FormShow(Sender: TObject); +begin + //Guardamos los valores iniciales por si al final el usuario cancela + pDireccion := eDireccion.Text; + pPoblacion := ePoblacion.Text; + pProvincia := eProvincia.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.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm new file mode 100644 index 00000000..d3c801d4 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm @@ -0,0 +1,201 @@ +inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor + Caption = 'Seleccionar albar'#225'n de proveedor' + ClientWidth = 790 + ExplicitWidth = 798 + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 790 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el albar'#225'n de proveedor') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = 8 + ExplicitWidth = 656 + 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 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 790 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + 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 + Left = 117 + Top = 23 + DockPos = 104 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 790 + end + end + inherited StatusBar: TJvStatusBar + Width = 790 + ExplicitTop = 425 + ExplicitWidth = 790 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 389 + 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 = 389 + 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 + Left = 56 + 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/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas new file mode 100644 index 00000000..2fb48f47 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas @@ -0,0 +1,125 @@ +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, JvgWizardHeader, StdCtrls, + uEditorAlbaranesProveedor, uBizAlbaranesProveedor, uIEditorElegirAlbaranesProveedor, + JvExComCtrls, JvStatusBar, JSDialog; + +type + TfEditorElegirAlbaranesProveedor = class(TfEditorAlbaranesProveedor, IEditorElegirAlbaranesProveedor) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirAlbaranesProveedor.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirAlbaranesProveedor.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm new file mode 100644 index 00000000..a9186737 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosAlbaranProveedor: TfEditorElegirArticulosAlbaranProveedor + Caption = 'fEditorElegirArticulosAlbaranProveedor' + ExplicitHeight = 480 + PixelsPerInch = 96 + TextHeight = 13 +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 00000000..cbea9012 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas @@ -0,0 +1,33 @@ +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, + JvgWizardHeader, uIEditorElegirArticulosAlbaranesProveedor; + +type + TfEditorElegirArticulosAlbaranProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosAlbaranesProveedor) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosAlbaranesProveedor; + +{ TfEditorElegirArticulosAlbaranProveedor } + +procedure TfEditorElegirArticulosAlbaranProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosAlbaranesProveedor) as IViewElegirArticulosAlbaranesProveedor; +end; + +end. 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 00000000..1625c2f5 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm @@ -0,0 +1,75 @@ +inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor + Height = 349 + ExplicitHeight = 349 + inherited dxLayoutControl1: TdxLayoutControl + Height = 349 + ExplicitHeight = 349 + inherited edtFechaAlbaran: TcxDBDateEdit + Left = 106 + ExplicitLeft = 106 + end + inherited memObservaciones: TcxDBMemo + ExplicitHeight = 162 + Height = 162 + end + inherited eReferencia: TcxDBTextEdit + Left = 106 + ExplicitLeft = 106 + end + inherited frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv + inherited dxLayoutControl1: TdxLayoutControl + inherited bModificar: TBitBtn + Left = 109 + Top = 109 + ExplicitLeft = 109 + ExplicitTop = 109 + end + inherited dxLayoutGroup1: TdxLayoutGroup + inherited dxLayoutItem1: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item2: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item4: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item1: TdxLayoutItem + Visible = False + end + end + end + end + inherited cbFormaPago: TcxDBLookupComboBox + Left = 106 + ExplicitLeft = 106 + end + inherited eReferenciaPedidoCli: TcxTextEdit + Left = 106 + ExplicitLeft = 106 + end + inherited eRefFacturaProv: TcxDBTextEdit + Left = 106 + ExplicitLeft = 106 + 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 + 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 00000000..31428187 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas @@ -0,0 +1,24 @@ +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; + +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.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm new file mode 100644 index 00000000..9f02e26e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm @@ -0,0 +1,417 @@ +inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor + Width = 688 + Height = 461 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 688 + ExplicitHeight = 461 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 688 + Height = 461 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 688 + 461) + object edtFechaAlbaran: TcxDBDateEdit + Left = 116 + Top = 55 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 119 + end + object memObservaciones: TcxDBMemo + Left = 316 + Top = 276 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Height = 253 + Width = 186 + 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 = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 143 + end + inline frViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor + Left = 316 + Top = 28 + Width = 350 + Height = 212 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 8 + ReadOnly = False + ExplicitLeft = 316 + ExplicitTop = 28 + ExplicitHeight = 212 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + end + inherited DADataSource: TDADataSource + Top = 72 + end + inherited ActionList1: TActionList + Top = 72 + inherited actElegirContacto: TAction + OnUpdate = frViewProveedorAlbaranactElegirContactoUpdate + end + inherited actAnadirContacto: TAction + OnUpdate = frViewProveedorAlbaranactAnadirContactoUpdate + end + end + inherited PngImageList: TPngImageList + Top = 72 + end + end + inline frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv + Left = 22 + Top = 195 + Width = 445 + Height = 175 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 7 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 195 + ExplicitWidth = 445 + ExplicitHeight = 175 + inherited dxLayoutControl1: TdxLayoutControl + Width = 445 + Height = 175 + ExplicitWidth = 445 + ExplicitHeight = 175 + inherited rdxDestino1: TRadioButton + Width = 255 + ExplicitWidth = 255 + end + inherited rdxDestino2: TRadioButton + Width = 287 + ExplicitWidth = 287 + end + inherited cbLista: TcxDBLookupComboBox + ExplicitWidth = 425 + Width = 425 + end + inherited bModificar: TBitBtn + Left = 126 + Top = 209 + ExplicitLeft = 126 + ExplicitTop = 209 + end + inherited txtDireccion: TStaticText + Height = 110 + ExplicitHeight = 110 + end + end + inherited ActionList1: TActionList + Left = 32 + Top = 40 + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 116 + Top = 138 + 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.ListSource = dsFormaPago + 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 = 90 + end + object bFormasPago: TButton + Left = 154 + Top = 138 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 6 + OnClick = bFormasPagoClick + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 116 + Top = 82 + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 69 + end + object Button1: TButton + Left = 154 + Top = 82 + Width = 132 + Height = 23 + Action = actVerPedido + TabOrder = 3 + end + object eRefFacturaProv: TcxDBTextEdit + Left = 116 + Top = 111 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FAC_PROVEEDOR' + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 216 + 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 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 = eRefFacturaProv + 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 = ahRight + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del proveedor' + object dxLayoutControl1Item1: TdxLayoutItem + Control = frViewProveedorAlbaran + 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...' + OnExecute = actElegirDireccionExecute + 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 00000000..9653c3da --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas @@ -0,0 +1,268 @@ +unit uViewAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesProveedor, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, uViewDatosYSeleccionProveedor, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaAlbaranProv, Buttons, ActnList, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, + uBizPedidosProveedor, uPedidosProveedorController; + +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: TfrViewDatosYSeleccionProveedor; + procedure SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor); + property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor read GetViewProveedorAlbaran write SetViewProveedorAlbaran; + 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; + dxLayoutControl1Item1: TdxLayoutItem; + frViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor; + 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; + eRefFacturaProv: TcxDBTextEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure frViewProveedorAlbaranButton1Click(Sender: TObject); + procedure frViewProveedorAlbaranButton2Click(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject); + procedure frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject); + procedure actVerPedidoExecute(Sender: TObject); + procedure actVerPedidoUpdate(Sender: TObject); + protected + FAlbaran : IBizAlbaranProveedor; + FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedor; + FFormasPagoController : IFormasPagoController; + FPedidoAsociado : IBizPedidoProveedor; + FPedidoController : IPedidosProveedorController; + + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual; + function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor; + procedure SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor); + public + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor read GetViewProveedorAlbaran; + end; + +implementation + +{$R *.dfm} + +{ TfrViewAlbaranProveedor } + +uses + uProveedoresController, uBizDireccionesContacto, uAlbaranesProveedorController, + uBizFormasPago; + + +procedure TfrViewAlbaranProveedor.actElegirDireccionExecute(Sender: TObject); +var + AProveedoresController : IProveedoresController; + AAlbaranController : IAlbaranesProveedorController; + ADireccion : IBizDireccionesContacto; +begin + inherited; +{ AProveedoresController := TProveedoresController.Create; + AAlbaranController := TAlbaranesProveedorController.Create; + try + ADireccion := AProveedoresController.ElegirDireccionEntrega(FAlbaran.Proveedor.Direcciones, + 'Seleccione la dirección del Proveedor que quiere utilizar como dirección de envio de este Albaran.'); + if Assigned(ADireccion) then + AAlbaranController.CopiarDireccionEnvio(ADireccion, FAlbaran); + finally + AProveedoresController := NIL; + AAlbaranController := NIL; + end; +} +end; + +procedure TfrViewAlbaranProveedor.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := 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; + (Sender as TAction).Enabled := Assigned(FPedidoAsociado) +end; + +procedure TfrViewAlbaranProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewAlbaranProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FPedidoAsociado := NIL; + FPedidoController := TPedidosProveedorController.Create; + FFormasPagoController := TFormasPagoController.Create; + FViewProveedorAlbaran := frViewProveedorAlbaran; + FViewProveedorAlbaran.MsgElegirProveedor := 'Elija el proveedor de este albarán.'; + + eReferencia.Enabled := False; +end; + +procedure TfrViewAlbaranProveedor.CustomViewDestroy(Sender: TObject); +begin + FPedidoController := NIL; + FFormasPagoController := NIL; + FPedidoAsociado := NIL; + FViewProveedorAlbaran := Nil; + inherited; +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactAnadirContactoUpdate( + Sender: TObject); +begin + if Assigned(FPedidoAsociado) then + (Sender as TAction).Enabled := False + else + inherited; +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactElegirContactoUpdate( + Sender: TObject); +begin + if Assigned(FPedidoAsociado) then + (Sender as TAction).Enabled := False + else + inherited; +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 eliminarán todos sus artículos de la orden de devolución actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorAlbaran.actElegirContacto.Execute; +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 eliminarán todos sus artículos del la orden de devolución actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorAlbaran.actElegirContacto.Execute; +end; + +function TfrViewAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +function TfrViewAlbaranProveedor.GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor; +begin + Result := FViewProveedorAlbaran; +end; + +procedure TfrViewAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + DADataSource.DataTable := FAlbaran.DataTable; + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + frViewProveedorAlbaran.Proveedor := FAlbaran.Proveedor; + frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran; + + eReferenciaPedidoCli.Enabled := False; + eRefFacturaProv.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; + frViewProveedorAlbaran.Proveedor := nil; + frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := Nil; + end; +end; + +procedure TfrViewAlbaranProveedor.SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor); +begin + FViewProveedorAlbaran := Value; +end; + +end. 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 00000000..a6d8fbc8 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm @@ -0,0 +1,45 @@ +inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor + OnCreate = CustomViewCreate + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewCALLE: TcxGridDBColumn + Visible = False + end + inherited cxGridViewREF_FAC_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. abono' + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 124 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 453 + Width = 453 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 237 + Width = 237 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 199 + Width = 199 + end + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39231.765653391200000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 00000000..b6dbcf32 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas @@ -0,0 +1,39 @@ +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, dxPScxGridLnk, uDADataTable, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +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; + cxGridViewREF_PED_PROVEEDOR.Destroy; + cxGridViewCALLE.Destroy; + cxGridViewCODIGO_POSTAL.Destroy; + cxGridViewPOBLACION.Destroy; + cxGridViewPROVINCIA.Destroy; +end; + +end. 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 00000000..4292ca24 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm @@ -0,0 +1,292 @@ +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> + 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 + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + Width = 65 + end + object cxGridViewFECHA_ALBARAN: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA_ALBARAN' + Width = 20 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 160 + 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 = 59 + 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_FAC_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'REF_FAC_PROVEEDOR' + Width = 24 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 114 + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 592 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 367 + ExplicitLeft = 367 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 592 + ExplicitWidth = 592 + inherited tbxBotones: TTBXToolbar + Width = 582 + ExplicitWidth = 582 + end + 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 PngImageList10: TPngImageList + Left = 352 + Top = 448 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + 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 00000000..81177144 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas @@ -0,0 +1,203 @@ +unit uViewAlbaranesProveedor; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, uBizAlbaranesProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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_FAC_PROVEEDOR: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + actProveedor: TAction; + actAlmacen: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var + ADone: Boolean); + 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); + + 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; + +{$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.cxGridViewCODIGOCustomDrawCell(Sender: + TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: + TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R: TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +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/uViewDetallesAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm new file mode 100644 index 00000000..8e18230a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm @@ -0,0 +1,2 @@ +inherited frViewDetallesAlbaranProveedor: TfrViewDetallesAlbaranProveedor +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 00000000..c45fd5f1 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas @@ -0,0 +1,70 @@ +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; + +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) + protected + FAlbaran: IBizAlbaranProveedor; + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + + procedure AnadirArticulosInterno; 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 + Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); + + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranProveedorController).CambiarSignoDetalles(Detalles); +end; + +procedure TfrViewDetallesAlbaranProveedor.AnadirArticulosInterno; +begin + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor); + + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranProveedorController).CambiarSignoDetalles(Detalles); +end; + +function TfrViewDetallesAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +procedure TfrViewDetallesAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; +end; + +end. 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 00000000..bbfafb4d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm @@ -0,0 +1,153 @@ +inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv + Width = 569 + Height = 225 + ExplicitWidth = 569 + ExplicitHeight = 225 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 569 + Height = 225 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 569 + 225) + object rdxDestino1: TRadioButton + Left = 10 + Top = 10 + Width = 255 + 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 = 60 + Width = 287 + Height = 17 + Action = actOtro + Caption = 'Recibir el albar'#225'n en esta otra direcci'#243'n:' + TabOrder = 2 + end + object cbLista: TcxDBLookupComboBox + Left = 25 + Top = 33 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = dsAlbaran + Properties.DropDownListStyle = lsFixedList + Properties.GridMode = True + 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.ListSource = dsAlmacenes + Properties.PostPopupValueOnTab = True + 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 = 1 + Width = 425 + end + object bModificar: TBitBtn + Left = 431 + Top = 190 + Width = 128 + Height = 25 + Caption = 'Modificar la direcci'#243'n...' + TabOrder = 4 + OnClick = bModificarClick + end + object txtDireccion: TStaticText + Left = 10 + Top = 83 + Width = 549 + Height = 110 + AutoSize = False + BevelKind = bkFlat + TabOrder = 3 + OnDblClick = txtDireccionDblClick + 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' + Offsets.Left = 15 + ShowCaption = False + Control = cbLista + 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 = 40 + Top = 16 + 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 + end + object dsAlbaran: TDADataSource + Left = 8 + Top = 16 + end + object dsAlmacenes: TDADataSource + Left = 8 + Top = 48 + 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 00000000..b3dfa3b7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas @@ -0,0 +1,195 @@ +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; + +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; + 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); + protected + FAlmacenesController : IAlmacenesController; + FAlmacenes: IBizAlmacen; + FAlbaran : IBizAlbaranProveedor; + FController : IAlbaranesProveedorController; + function GetAlbaranProveedor: IBizAlbaranProveedor; + procedure SetAlbaranProveedor(const Value: IBizAlbaranProveedor); + procedure CambioDireccionAlmacen; + procedure RefrescarDireccion; + public + property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses + uEditorRegistryUtils; + +procedure TfrViewDireccionEntregaAlbaranProv.actListaExecute(Sender: TObject); +begin + actLista.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.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; +end; + +destructor TfrViewDireccionEntregaAlbaranProv.Destroy; +begin + cbLista.Properties.OnValidate := Nil; + FAlmacenesController := Nil; + FAlmacenes := 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 := ''; + 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 begin + txtDireccion.Enabled := False; + bModificar.Enabled := False; + cbLista.Enabled := True; + cbLista.DroppedDown := True; + end; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.SetAlbaranProveedor( + const Value: IBizAlbaranProveedor); +begin + cbLista.Properties.OnValidate := NIL; + dsAlbaran.DataTable := nil; + + FAlbaran := Value; + + dsAlbaran.DataTable := FAlbaran.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate; + + if (FAlbaran.EsNuevo) then + CambioDireccionAlmacen + else + if (FAlbaran.ID_ALMACEN < 1) then + actOtro.Checked := True; + + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.txtDireccionDblClick(Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +end. 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 00000000..3f6efc6c --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm @@ -0,0 +1,7 @@ +inherited frViewElegirArticulosAlbaranesProveedor: TfrViewElegirArticulosAlbaranesProveedor + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + 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 00000000..cb9fc393 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas @@ -0,0 +1,26 @@ +unit uViewElegirArticulosAlbaranesProveedor; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid; + +type + IViewElegirArticulosAlbaranesProveedor = interface(IViewArticulos) + ['{93C55517-8F37-4EDF-A1B0-95461D0AD807}'] + end; + + TfrViewElegirArticulosAlbaranesProveedor = class(TfrViewArticulos, IViewElegirArticulosAlbaranesProveedor) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup b/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup new file mode 100644 index 00000000..47346aaa --- /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/Controller/Almacenes_controller.bdsproj b/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj new file mode 100644 index 00000000..cb52e159 --- /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.dpk b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk new file mode 100644 index 00000000..dc020500 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk @@ -0,0 +1,48 @@ +package Almacenes_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + ControllerBase, + GUIBase, + Almacenes_data, + Almacenes_model, + DataAbstract_D10; + +contains + uAlmacenesController in 'uAlmacenesController.pas', + uIEditorAlmacenes in 'View\uIEditorAlmacenes.pas', + uIEditorAlmacen in 'View\uIEditorAlmacen.pas', + uIEditorListaAlmacenes in 'View\uIEditorListaAlmacenes.pas'; + +end. diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.rc b/Source/Modulos/Almacenes/Controller/Almacenes_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.res b/Source/Modulos/Almacenes/Controller/Almacenes_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/Almacenes_controller.res differ diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas new file mode 100644 index 00000000..663f3df4 --- /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.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.pas new file mode 100644 index 00000000..ae62e371 --- /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.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.pas new file mode 100644 index 00000000..773bd7df --- /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.pas b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas new file mode 100644 index 00000000..56192c75 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas @@ -0,0 +1,423 @@ +unit uAlmacenesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleAlmacenes, uBizAlmacenes; + +type + IAlmacenesController = interface(IObservador) + ['{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); + end; + + TAlmacenesController = class(TObservador, 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 métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AAlmacen: IBizAlmacen); virtual; + procedure AsignarEditor(out AEditor: IEditorDBItem); virtual; + + procedure ValidarObjetos; virtual; + procedure AsignarCodigo(AAlmacen: IBizAlmacen); virtual; + + public + constructor Create; virtual; + 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); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schAlmacenesClient_Intf, + uIEditorAlmacenes, uIEditorAlmacen, uDataModuleAlmacenes, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, + 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.AsignarEditor(out AEditor: IEditorDBItem); +begin + CreateEditor('EditorAlmacen', IEditorAlmacen, AEditor); +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); + FiltrarEmpresa(Result); +end; + +function TAlmacenesController.BuscarTodos: IBizAlmacen; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TAlmacenesController.Create; +begin + AsignarDataModule; +end; + +function TAlmacenesController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlmacenesController.ValidarAlmacen(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if Length(AAlmacen.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de este almacén.'); + + // Asegurarse de valores en campos "automáticos" + AAlmacen.Edit; + try + AAlmacen.USUARIO := dmUsuarios.LoginInfo.Usuario; + + Result := True; + finally + AAlmacen.Post; + end; +end; + +procedure TAlmacenesController.ValidarObjetos; +begin +// +end; + +procedure TAlmacenesController.Ver(AAlmacen: IBizAlmacen); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlmacen); + AsignarEditor(AEditor); + + with (AEditor as IEditorAlmacen) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacen := AAlmacen; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TAlmacenesController.VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; +var + AEditor : IEditorListaAlmacenes; +begin + Result := NIL; + + CreateEditor('EditorListaAlmacenes', IEditorListaAlmacenes, AEditor); + try + with AEditor do + begin + Almacenes := AAlmacenes; + if IsPositiveResult(ShowModal) then + Result := AlmacenSeleccionado; + AEditor.Release; + end; + finally + AEditor := NIL; + end; +end; + +procedure TAlmacenesController.VerTodos(AAlmacenes: IBizAlmacen); +var + AEditor : IEditorAlmacenes; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlmacenes', IEditorAlmacenes, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacenes := AAlmacenes; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +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 artículos', 'Atención', 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); +begin + if AAlmacen.DataTable.Active then + AAlmacen.DataTable.Active := False; + + // Filtrar los Almacenes actuales por empresa + with AAlmacen.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + + OpenBraket; + AddText('ALMACENES.' + fld_AlmacenesID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual)); + CloseBraket; + 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; + 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 00000000..fa393023 --- /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.dpk b/Source/Modulos/Almacenes/Data/Almacenes_data.dpk new file mode 100644 index 00000000..3851b3fe --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.dpk @@ -0,0 +1,41 @@ +package Almacenes_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + Almacenes_model; + +contains + uDataModuleAlmacenes in 'uDataModuleAlmacenes.pas' {DataModuleAlmacenes}; + +end. diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.rc b/Source/Modulos/Almacenes/Data/Almacenes_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.res b/Source/Modulos/Almacenes/Data/Almacenes_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Almacenes/Data/Almacenes_data.res differ diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm new file mode 100644 index 00000000..6961a8d8 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm @@ -0,0 +1,375 @@ +object DataModuleAlmacenes: TDataModuleAlmacenes + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvAlmacenes' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_Almacenes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_MOVIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Almacenes_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Almacenes' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Almacenes' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Almacenes' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Almacenes' + IndexDefs = <> + Left = 240 + Top = 120 + end + object ds_Almacenes: TDADataSource + DataTable = tbl_Almacenes + Left = 240 + Top = 64 + end +end diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas new file mode 100644 index 00000000..dbc3e448 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas @@ -0,0 +1,122 @@ +unit uDataModuleAlmacenes; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleAlmacenes, uBizAlmacenes; + +type + TDataModuleAlmacenes = class(TDAClientDataModule, IDataModuleAlmacenes) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_Almacenes: TDACDSDataTable; + ds_Almacenes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + procedure AsignarClaseNegocio(var AAlmacen: TDACDSDataTable); virtual; + function darNombreGenerador(DataSetName: String): String; virtual; + public + function GetItems : IBizAlmacen; + function GetItem(const ID : Integer) : IBizAlmacen; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlmacen; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schAlmacenesClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleAlmacenes.AsignarClaseNegocio(var AAlmacen: TDACDSDataTable); +begin + AAlmacen.BusinessRulesID := BIZ_CLIENT_ALMACEN; +end; + +procedure TDataModuleAlmacenes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlmacenes.darNombreGenerador(DataSetName: String): String; +begin + if DataSetName = nme_Almacenes then + Result := 'GEN_ALMACENES_ID'; +end; + +function TDataModuleAlmacenes.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := darNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvAlmacenes).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleAlmacenes.NewItem: IBizAlmacen; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlmacenes._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleAlmacenes.GetItem(const ID: Integer): IBizAlmacen; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('Almacenes.' + fld_AlmacenesID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlmacenes.GetItems: IBizAlmacen; +var + AAlmacen : TDACDSDataTable; +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 00000000..61379b92 --- /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.dpk b/Source/Modulos/Almacenes/Model/Almacenes_model.dpk new file mode 100644 index 00000000..f6c80c1a --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.dpk @@ -0,0 +1,46 @@ +package Almacenes_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, + cxEditorsD10, + cxLibraryD10, + dxThemeD10, + vcl, + cxDataD10, + vcljpg, + vcldb, + dsnap, + adortl, + Usuarios; + +contains + uBizAlmacenes in 'uBizAlmacenes.pas', + uIDataModuleAlmacenes in 'Data\uIDataModuleAlmacenes.pas', + schAlmacenesClient_Intf in 'schAlmacenesClient_Intf.pas'; + +end. diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.rc b/Source/Modulos/Almacenes/Model/Almacenes_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.res b/Source/Modulos/Almacenes/Model/Almacenes_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Almacenes/Model/Almacenes_model.res differ diff --git a/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas new file mode 100644 index 00000000..131f16e6 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlmacenes; + +interface + +uses + uBizAlmacenes; + +type + IDataModuleAlmacenes = interface + ['{0FE2B5E6-DE76-4834-B27F-3C754C96B76A}'] + function GetItems: IBizAlmacen; + function GetItem(const ID : Integer) : IBizAlmacen; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizAlmacen; + end; + +implementation + +end. diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas new file mode 100644 index 00000000..df6d84ae --- /dev/null +++ b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas @@ -0,0 +1,335 @@ +unit schAlmacenesClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{2DCC6883-DBB5-418A-A355-AA7A72F5F0CA}'; + + { Data table names } + nme_Almacenes = 'Almacenes'; + + { Almacenes fields } + fld_AlmacenesID = 'ID'; + fld_AlmacenesID_EMPRESA = 'ID_EMPRESA'; + fld_AlmacenesFECHA_ALTA = 'FECHA_ALTA'; + 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_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlmacenesUSUARIO = 'USUARIO'; + fld_AlmacenesNOMBRE = 'NOMBRE'; + + { Almacenes field indexes } + idx_AlmacenesID = 0; + idx_AlmacenesID_EMPRESA = 1; + idx_AlmacenesFECHA_ALTA = 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_MODIFICACION = 12; + idx_AlmacenesUSUARIO = 13; + idx_AlmacenesNOMBRE = 14; + +type + { IAlmacenes } + IAlmacenes = interface(IDAStronglyTypedDataTable) + ['{5FF711CD-A427-4668-96D6-78450E64E858}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetMOVILValue: String; + procedure SetMOVILValue(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property FAX: String read GetFAXValue write SetFAXValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + end; + + { TAlmacenesDataTableRules } + TAlmacenesDataTableRules = class(TDADataTableRules, IAlmacenes) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property FAX: String read GetFAXValue write SetFAXValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TAlmacenesDataTableRules } +constructor TAlmacenesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlmacenesDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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.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.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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AlmacenesOBSERVACIONES].AsString; +end; + +procedure TAlmacenesDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AlmacenesOBSERVACIONES].AsString := aValue.Text; +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.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.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlmacenesNOMBRE].AsString; +end; + +procedure TAlmacenesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesNOMBRE].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_Almacenes, TAlmacenesDataTableRules); + +end. diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas new file mode 100644 index 00000000..24c6e0cd --- /dev/null +++ b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas @@ -0,0 +1,389 @@ +unit schAlmacenesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{981232FA-466B-477F-9533-3B7C85B0502C}'; + +type + { IAlmacenesDelta } + IAlmacenesDelta = interface(IAlmacenes) + ['{981232FA-466B-477F-9533-3B7C85B0502C}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + 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_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldNOMBREValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + 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_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TAlmacenesBusinessProcessorRules } + TAlmacenesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlmacenes, IAlmacenesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetMOVILValue: String; virtual; + function GetOldMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property OldMOVIL : String read GetOldMOVILValue; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TAlmacenesBusinessProcessorRules } +constructor TAlmacenesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlmacenesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlmacenesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID_EMPRESA]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_ALTA]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCALLE]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPROVINCIA]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPOBLACION]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCODIGO_POSTAL]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesTELEFONO]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesMOVIL]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFAX]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPERSONA_CONTACTO]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesOBSERVACIONES]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES] := aValue.Text; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_MODIFICACION]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesUSUARIO]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO] := aValue; +end; + +function TAlmacenesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesNOMBRE]; +end; + +procedure TAlmacenesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_AlmacenesDelta, TAlmacenesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas b/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas new file mode 100644 index 00000000..3e630ff1 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas @@ -0,0 +1,51 @@ +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 + uDataModuleUsuarios; + +{ TBizAlmacen } + +function TBizAlmacen.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizAlmacen.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; +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 00000000..8bc60667 --- /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.dpk b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk new file mode 100644 index 00000000..cbf92691 --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk @@ -0,0 +1,41 @@ +package Almacenes_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Almacenes_view, + Almacenes_controller, + PluginSDK_D10R; + +contains + uPluginAlmacenes in 'uPluginAlmacenes.pas'; + +end. diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res differ diff --git a/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm new file mode 100644 index 00000000..02a6d44f --- /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 = 101 + 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 00000000..4cab56f1 --- /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.dfm b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm new file mode 100644 index 00000000..ff486a9a --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm @@ -0,0 +1,417 @@ +object srvAlmacenes: TsrvAlmacenes + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schAlmacenes + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnAfterGetDatasetData = DARemoteServiceAfterGetDatasetData + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Almacenes_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_MOVIL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + end> + Left = 150 + Top = 22 + end + object schAlmacenes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALMACENES' + SQL = + 'SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALM' + + 'ACENES.CALLE,'#10' ALMACENES.PROVINCIA, ALMACENES.POBLACION, A' + + 'LMACENES.CODIGO_POSTAL,'#10' ALMACENES.TELEFONO, ALMACENES.MOV' + + 'IL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO,'#10' ALMACENES.' + + 'OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACIO' + + 'N,'#10' ALMACENES.USUARIO'#10#10'FROM ALMACENES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + SQLOrigin = 'CONTACTOS.NOMBRE' + end + item + DatasetField = 'ID' + TableField = 'ID' + SQLOrigin = 'MONTAJES.ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + SQLOrigin = 'MONTAJES.ID_EMPRESA' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + SQLOrigin = 'MONTAJES.FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + SQLOrigin = 'MONTAJES.FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + SQLOrigin = 'MONTAJES.USUARIO' + 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 = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end> + end> + Name = 'Almacenes' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_MOVIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Almacenes_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + 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 00000000..3f116f34 --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas @@ -0,0 +1,85 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDAInterfaces; + +type + { TsrvAlmacenes } + TsrvAlmacenes = class(TDARemoteService, IsrvAlmacenes) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + schAlmacenes: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvAlmacenes methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + 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 sólo 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvAlmacenes.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvAlmacenes.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..e1f83377 --- /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.dpk b/Source/Modulos/Almacenes/Views/Almacenes_view.dpk new file mode 100644 index 00000000..d134ca28 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.dpk @@ -0,0 +1,80 @@ +package Almacenes_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, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + dxLayoutControlD10, + dxComnD10, + JvCoreD10R, + vclx, + Jcl, + JclVcl, + JvAppFrmD10R, + JvSystemD10R, + dsnap, + adortl, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxExportD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + GUIBase, + Almacenes_model, + Almacenes_data, + tbx_d10, + tb2k_d10, + JvPageCompsD10R, + JvStdCtrlsD10R, + Almacenes_controller, + Usuarios; + +contains + uViewAlmacen in 'uViewAlmacen.pas' {frViewAlmacen: TFrame}, + uViewAlmacenes in 'uViewAlmacenes.pas' {frViewAlmacenes: TFrame}, + uEditorAlmacenes in 'uEditorAlmacenes.pas' {fEditorAlmacenes: TfEditorAlmacenes}, + uAlmacenesViewRegister in 'uAlmacenesViewRegister.pas', + uEditorAlmacen in 'uEditorAlmacen.pas' {fEditorAlmacen: TfEditorAlmacen}, + uEditorListaAlmacenes in 'uEditorListaAlmacenes.pas' {fEditorListaAlmacenes: TfListaAlmacenes}; + +end. diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.rc b/Source/Modulos/Almacenes/Views/Almacenes_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.res b/Source/Modulos/Almacenes/Views/Almacenes_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/Almacenes_view.res differ diff --git a/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas b/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas new file mode 100644 index 00000000..267bc9a2 --- /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.dfm b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm new file mode 100644 index 00000000..0e1de1d7 --- /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 = 324 + 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 = 632 + ExplicitWidth = 632 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 624 + ExplicitHeight = 338 + 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 00000000..9c7ae357 --- /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; + +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 almacén' + else + FTitulo := 'Almacén' + ' - ' + 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 ningún almacén 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?', 'Atención', 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.dfm b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm new file mode 100644 index 00000000..f219ffce --- /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 = 465 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 260 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + 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 TBXDock1: TTBXDock + Width = 543 + ExplicitWidth = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 543 + inherited dxLayoutControl1: TdxLayoutControl + Width = 539 + ExplicitWidth = 539 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 335 + ExplicitLeft = 335 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 539 + ExplicitWidth = 539 + inherited tbxBotones: TTBXToolbar + Width = 529 + ExplicitWidth = 529 + end + 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 + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewAlmacenes1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = 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 00000000..fa896d46 --- /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; + +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, + 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 - ' + dmUsuarios.EmpresaActual.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.dfm b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dfm new file mode 100644 index 00000000..c596580c --- /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 00000000..2aefe659 --- /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 00000000..2459930d --- /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 00000000..4be2f6ec --- /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.dfm b/Source/Modulos/Almacenes/Views/uViewAlmacen.dfm new file mode 100644 index 00000000..bf2e7ba9 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacen.dfm @@ -0,0 +1,264 @@ +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 + 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 = 204 + 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 = 204 + 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 = 173 + 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 = 173 + 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 = 173 + 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 = 278 + end + object ePoblacion: TcxDBTextEdit + Left = 130 + Top = 166 + DataBinding.DataField = 'POBLACION' + 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 = 6 + Width = 177 + end + object eCodigoPostal: TcxDBTextEdit + Left = 359 + 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 = 65 + end + object eProvincia: TcxDBTextEdit + Left = 130 + Top = 193 + DataBinding.DataField = 'PROVINCIA' + 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 = 8 + Width = 278 + 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 dxLayoutControlAlmacenGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlAlmacenGroup6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlAlmacenItem2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = ePoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C. P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlAlmacenItem9: TdxLayoutItem + Caption = 'Provincia:' + Control = eProvincia + ControlOptions.ShowBorder = False + end + 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 00000000..95db2950 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacen.pas @@ -0,0 +1,83 @@ +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; + +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; + ePoblacion: TcxDBTextEdit; + dxLayoutControlAlmacenItem7: TdxLayoutItem; + dxLayoutControlAlmacenGroup5: TdxLayoutGroup; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControlAlmacenItem9: TdxLayoutItem; + dxLayoutControlAlmacenGroup6: TdxLayoutGroup; + eProvincia: TcxDBTextEdit; + protected + FAlmacen: IBizAlmacen; + function GetAlmacen: IBizAlmacen; + procedure SetAlmacen(const Value: IBizAlmacen); + public + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + end; + +implementation + +uses uDataModuleAlmacenes; + +{$R *.dfm} + +{ TfrViewAlmacenes } + +{ +******************************* TfrViewAlmacenes ******************************** +} + +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.dfm b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm new file mode 100644 index 00000000..e7dce3e9 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm @@ -0,0 +1,127 @@ +inherited frViewAlmacenes: TfrViewAlmacenes + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + Column = cxGridViewNOMBRE + end> + OptionsBehavior.PullFocusing = True + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + OnCustomDrawCell = cxGridViewIDCustomDrawCell + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + IsCaptionAssigned = True + end + 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 + inherited TBXDock1: TTBXDock + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 550 + 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 + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + object PngImageList: 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 = 'PngImage0' + Background = clWindow + end> + Left = 160 + Top = 32 + Bitmap = {} + end +end diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas b/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas new file mode 100644 index 00000000..26f42b3e --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas @@ -0,0 +1,87 @@ +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, dxPScxGridLnk, + cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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; + cxGridViewID: TcxGridDBColumn; + PngImageList: TPngImageList; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewMOVIL: TcxGridDBColumn; + cxGridViewFAX: TcxGridDBColumn; + procedure cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + 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; + + +procedure TfrViewAlmacenes.cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); + ADone := True; +end; + +end. diff --git a/Source/Modulos/Articulos/Articulos_Group.bdsgroup b/Source/Modulos/Articulos/Articulos_Group.bdsgroup new file mode 100644 index 00000000..40068fdb --- /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/Controller/Articulos_controller.bdsproj b/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj new file mode 100644 index 00000000..ab9e55e1 --- /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.dpk b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk new file mode 100644 index 00000000..c86aea83 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk @@ -0,0 +1,61 @@ +package Articulos_controller; + +{$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 + rtl, + Articulos_model, + Articulos_data, + vcl, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + Contactos_model, + Contactos_controller; + +contains + uIEditorArticulos in 'View\uIEditorArticulos.pas', + uIEditorArticulo in 'View\uIEditorArticulo.pas', + uArticulosController in 'uArticulosController.pas', + uIEditorElegirArticulos in 'View\uIEditorElegirArticulos.pas', + uControllerDetallesArticulos in 'uControllerDetallesArticulos.pas'; + +end. diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.rc b/Source/Modulos/Articulos/Controller/Articulos_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.res b/Source/Modulos/Articulos/Controller/Articulos_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/Articulos_controller.res differ diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas b/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas new file mode 100644 index 00000000..61198c71 --- /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.pas b/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.pas new file mode 100644 index 00000000..5082fd75 --- /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.pas b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas new file mode 100644 index 00000000..4d11ca77 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas @@ -0,0 +1,27 @@ +unit uIEditorElegirArticulos; + +interface + +uses + uIEditorArticulos, uBizArticulos, uGUIBase; + +type + IEditorElegirArticulos = interface(IEditorArticulos) + ['{549F3B97-46E2-4D40-8080-566065735FA0}'] + 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.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas new file mode 100644 index 00000000..71893889 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -0,0 +1,633 @@ +unit uArticulosController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleArticulos, uBizArticulos, uProveedoresController, + uBizContactos; + +type + IArticulosController = interface(IObservador) + ['{C7EA6486-7BE4-468E-A27A-621E1BA13430}'] + function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; + function BuscarInventariables: IBizArticulo; + function BuscarTodos: 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(AArticulos: IBizArticulo); + 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 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; + end; + + TArticulosController = class(TObservador, IArticulosController) + protected + FDataModule : IDataModuleArticulos; + FProveedoresController: IProveedoresController; + function GetProveedoresController: IProveedoresController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + procedure AsignarID(AArticulo: IBizArticulo; const IDNuevo: Integer); virtual; + 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; virtual; + 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 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 = -1): IBizArticulo; virtual; + function Nuevo : IBizArticulo; virtual; + procedure Ver(AArticulo : IBizArticulo); virtual; + procedure VerTodos(AArticulos: IBizArticulo); 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); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schArticulosClient_Intf, + uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos, + uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces, + 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; + +procedure TArticulosController.AsignarID(AArticulo: IBizArticulo; const IDNuevo: Integer); +begin + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignado'); + + AArticulo.Edit; + AArticulo.ID := IDNuevo; + AArticulo.Post; +end; + +function TArticulosController.Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; +begin + if (AClienteID = -1) then + Result := (FDataModule as IDataModuleArticulos).GetItem(ID) + else + Result := (FDataModule as IDataModuleArticulos).GetItem(ID, AClienteID); + + FiltrarEmpresa(Result); +end; + +function TArticulosController.BuscarInventariables: IBizArticulo; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('ARTICULOS.' + fld_ArticulosINVENTARIABLE + ' = 1'); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferencia(const Ref: String; AClienteID: Integer = -1): IBizArticulo; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := BuscarTodos + else + Result := BuscarTodos(AClienteID); + + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('UPPER(ARTICULOS.' + fld_ArticulosREFERENCIA + ') = UPPER(''' + Ref + ''')'); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer = -1): IBizArticulo; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := BuscarTodos + else + Result := BuscarTodos(AClienteID); + + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('UPPER(ARTICULOS.' + fld_ArticulosREFERENCIA_PROV + ') = UPPER(''' + Ref + ''')'); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo; +begin + Result := FDataModule.GetItems(ACliente); + FiltrarEmpresa(Result); +end; + +function TArticulosController.BuscarTodos(ACliente: IBizCliente): IBizArticulo; +begin + if not Assigned(ACliente) then + raise Exception.Create('Falta ACliente: BuscarTodos'); + + Result := BuscarTodos(ACliente.ID); +end; + +function TArticulosController.BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; +begin + if Assigned(AProveedor) then + begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('ARTICULOS.' + fld_ArticulosID_PROVEEDOR + ' = ' + IntToStr(AProveedor.ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; + end; +end; + +function TArticulosController.BuscarTodos: IBizArticulo; +begin + Result := FDataModule.GetItems; + 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 + AsignarDataModule; +end; + +function TArticulosController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +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 artículo nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.ValidarArticulo(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Artículo no asignado'); + + if (AArticulo.DataTable.State in dsEditModes) then + AArticulo.DataTable.Post; + + if Length(AArticulo.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripción de este artículo.'); + + // Asegurarse de valores en campos "automáticos" + AArticulo.Edit; + try + AArticulo.USUARIO := dmUsuarios.LoginInfo.Usuario; + + Result := True; + finally + AArticulo.Post; + end; +end; + +procedure TArticulosController.Ver(AArticulo: IBizArticulo); +var + AEditor : IEditorArticulo; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AArticulo); + + CreateEditor('EditorArticulo', IEditorArticulo, AEditor); + with (AEditor as IEditorArticulo) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Articulo := AArticulo; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + 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(AArticulos: IBizArticulo); +var + AEditor : IEditorArticulos; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AArticulos); + + CreateEditor('EditorArticulos', IEditorArticulos, AEditor); + with (AEditor as IEditorArticulos) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Articulos := AArticulos; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +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 artículo con ID = %d', [ID])); + + 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); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + 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 artículo porque tiene artículos', 'Atención', 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); + CopyDataTable(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TArticulosController.FiltrarEmpresa(AArticulo: IBizArticulo); +begin + if AArticulo.DataTable.Active then + AArticulo.DataTable.Active := False; + + // Filtrar los Articulos actuales por empresa + with AArticulo.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + + OpenBraket; + AddText('Articulos.' + fld_ArticulosID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual)); + CloseBraket; + end; +end; + +function TArticulosController.GetProveedoresController: IProveedoresController; +begin + Result := FProveedoresController; +end; + +function TArticulosController.Guardar(AArticulo: IBizArticulo): Boolean; +var + NuevoID: Integer; +begin + Result := False; + + if ValidarArticulo(AArticulo) then + begin + ShowHourglassCursor; + try + if (AArticulo.EsNuevo) then + NuevoID := FDataModule.GetNextID(AArticulo.DataTable.LogicalName) + else + NuevoID := AArticulo.ID; + + AsignarID(AArticulo, NuevoID); + AArticulo.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TArticulosController.Nuevo: IBizArticulo; +var + AArticulo : IBizArticulo; +begin + AArticulo := FDataModule.NewItem; + 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.pas b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas new file mode 100644 index 00000000..06175537 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas @@ -0,0 +1,403 @@ +unit uControllerDetallesArticulos; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerDetallesDTO, + uBizArticulos, uArticulosController; + +const + CAMPO_ID_ARTICULOS = 'ID_ARTICULO'; + CAMPO_REFERENCIA = 'REFERENCIA'; //Campo ficticio + CAMPO_REFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; //Campo ficticio + +type + TEnumReferencia = (tCliente, tProveedor); + + IControllerDetallesArticulos = interface(IControllerDetallesDTO) + ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] + procedure AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo:Boolean); + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload; + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); + procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); + procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); + end; + + TControllerDetallesArticulos = class (TControllerDetallesDTO, IControllerDetallesArticulos) + protected + FArticulosController: IArticulosController; + + procedure EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable); + procedure RellenarDescuento(ADetalles: IDAStronglyTypedDataTable; ADescuento : Float); + + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); virtual; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; + + procedure AsignarController; virtual; + + public + procedure AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo:Boolean); + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload; + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); virtual; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); + procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); + procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); + + constructor Create; override; + destructor Destroy; override; + end; + + +implementation + +{ TControllerDetallesArticulos } + +uses Dialogs, cxControls, SysUtils, uDAInterfaces, uControllerDetallesBase, schArticulosClient_Intf; + + +{ TControllerDetallesArticulos } + +procedure TControllerDetallesArticulos.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +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 + RellenarDetalle(ADetalles, AArticulos) + else + RellenarDetalle(ADetalles, Nil); + 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); +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); + Next; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; + end; +end; + +function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; +var + AArticulo: IBizArticulo; +begin +{ + Añade el artículo 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); + Result := True; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; +end; + +procedure TControllerDetallesArticulos.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); + AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True); + Add(ADetalles, AArticulos); + 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); + //Añadimos 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.AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo: Boolean); +begin + with ADetalles do + begin + DataTable.DisableControls; + try + begin + if not DataTable.Active then + DataTable.Active := True; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + AsignarDatos(ADetalles, IDCabecera); + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if DataTable.FieldByName('ID').AsInteger < 0 then + AsignarDatos(ADetalles, IDCabecera); + DataTable.Next + end; + end; + end; + finally + DataTable.EnableControls; + end; + end; +end; + +procedure TControllerDetallesArticulos.CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); +begin +//Cambia de signo los detalles de la pasados por parámetro + if Assigned(ADetalles) then + begin + try + BeginUpdate(ADetalles); + + if not ADetalles.DataTable.Active then + ADetalles.DataTable.Active := True; + + with ADetalles.DataTable do + begin + First; + while not EOF do + begin + if (FieldByName(CAMPO_CANTIDAD).AsInteger <> 0) then + begin + Edit; + FieldByName(CAMPO_CANTIDAD).AsInteger := -1; + end; + Next; + end; + end; + finally + EndUpdate(ADetalles); + end; + end; +end; + +constructor TControllerDetallesArticulos.Create; +begin + inherited; + AsignarController; +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): Boolean; +var + AArticulo: IBizArticulo; +begin +{ + Añade el artículo 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); + Result := True; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; +end; + +procedure TControllerDetallesArticulos.RellenarDescuento(ADetalles: IDAStronglyTypedDataTable; ADescuento: Float); +begin + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := ADescuento; +end; + +procedure TControllerDetallesArticulos.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +// Procedimiento que en los hijos se sobreescribirá para rellenar el campo descuento según necesidades +end; + +procedure TControllerDetallesArticulos.RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(ADetalles) then + begin + if not ADetalles.DataTable.Editing then + ADetalles.DataTable.Edit; + + RellenarGenerales(ADetalles, AArticulos); + RellenarImportes(ADetalles, AArticulos); + RellenarDescuentos(ADetalles, AArticulos); + + ADetalles.DataTable.Post; + 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_CANTIDAD).AsInteger := 1; + end; +end; + +procedure TControllerDetallesArticulos.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +// Procedimiento que en los hijos se sobreescribirá para rellenar el campo importe según 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 00000000..3ac864db --- /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.dpk b/Source/Modulos/Articulos/Data/Articulos_data.dpk new file mode 100644 index 00000000..cdf87166 --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.dpk @@ -0,0 +1,41 @@ +package Articulos_data; + +{$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 + rtl, + Articulos_model, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl; + +contains + uDataModuleArticulos in 'uDataModuleArticulos.pas' {DataModuleArticulos}; + +end. diff --git a/Source/Modulos/Articulos/Data/Articulos_data.rc b/Source/Modulos/Articulos/Data/Articulos_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Articulos/Data/Articulos_data.res b/Source/Modulos/Articulos/Data/Articulos_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Articulos/Data/Articulos_data.res differ diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm new file mode 100644 index 00000000..7451de89 --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm @@ -0,0 +1,685 @@ +object DataModuleArticulos: TDataModuleArticulos + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvArticulos' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_Articulos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Articulos' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Articulos' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Articulos' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 + DataTable = tbl_Articulos + Left = 232 + Top = 32 + end + object tbl_ArticulosParaCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CLIENTE' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'ArticulosParaCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'ArticulosParaCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'ArticulosParaCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ArticulosParaCliente' + IndexDefs = <> + Left = 392 + Top = 96 + end + object ds_ArticulosParaCliente: TDADataSource + DataTable = tbl_ArticulosParaCliente + Left = 392 + Top = 40 + end +end diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas new file mode 100644 index 00000000..397451bd --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas @@ -0,0 +1,147 @@ +unit uDataModuleArticulos; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleArticulos, uBizArticulos; + +type + TDataModuleArticulos = class(TDAClientDataModule, IDataModuleArticulos) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_Articulos: TDACDSDataTable; + ds_Articulos: TDADataSource; + tbl_ArticulosParaCliente: TDACDSDataTable; + ds_ArticulosParaCliente: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + procedure AsignarClaseNegocio(var AArticulo: TDACDSDataTable); virtual; + function darNombreGenerador(DataSetName: String): String; virtual; + public + function GetItems : IBizArticulo; overload; + function GetItems (IDCliente: Integer) : IBizArticulo; overload; + function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizArticulo; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schArticulosClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleArticulos.AsignarClaseNegocio(var AArticulo: TDACDSDataTable); +begin + AArticulo.BusinessRulesID := BIZ_CLIENT_ARTICULO; +end; + +procedure TDataModuleArticulos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleArticulos.darNombreGenerador(DataSetName: String): String; +begin + if DataSetName = nme_Articulos then + Result := 'GEN_ARTICULOS_ID'; +end; + +function TDataModuleArticulos.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := darNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvArticulos).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleArticulos.NewItem: IBizArticulo; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleArticulos._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleArticulos.GetItem(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := Self.GetItems + else + Result := Self.GetItems(AClienteID); + + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('ARTICULOS.' + fld_ArticulosID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleArticulos.GetItems(IDCliente: Integer): IBizArticulo; +var + AArticulo : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AArticulo := _CloneDataTable(tbl_ArticulosParaCliente); + + AsignarClaseNegocio(AArticulo); + + AArticulo.ParamByName('ID_CLIENTE').AsInteger := IdCliente; + Result := (AArticulo as IBizArticulo); + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleArticulos.GetItems: IBizArticulo; +var + AArticulo : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AArticulo := _CloneDataTable(tbl_Articulos); + + AsignarClaseNegocio(AArticulo); + + 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 00000000..f5c354a9 --- /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.dpk b/Source/Modulos/Articulos/Model/Articulos_model.dpk new file mode 100644 index 00000000..bfbe12ae --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.dpk @@ -0,0 +1,43 @@ +package Articulos_model; + +{$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 + rtl, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Usuarios, + DataAbstract_D10; + +contains + uBizArticulos in 'uBizArticulos.pas', + uIDataModuleArticulos in 'Data\uIDataModuleArticulos.pas', + schArticulosClient_Intf in 'schArticulosClient_Intf.pas', + schArticulosServer_Intf in 'schArticulosServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Articulos/Model/Articulos_model.rc b/Source/Modulos/Articulos/Model/Articulos_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Articulos/Model/Articulos_model.res b/Source/Modulos/Articulos/Model/Articulos_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Articulos/Model/Articulos_model.res differ diff --git a/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas new file mode 100644 index 00000000..17b690e5 --- /dev/null +++ b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas @@ -0,0 +1,20 @@ +unit uIDataModuleArticulos; + +interface + +uses + uBizArticulos; + +type + IDataModuleArticulos = interface + ['{9047C468-78DE-404E-9047-1125B382FE3B}'] + function GetItems: IBizArticulo; overload; + function GetItems (IDCliente: Integer) : IBizArticulo; overload; + function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizArticulo; + end; + +implementation + +end. diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas new file mode 100644 index 00000000..4a1bd88c --- /dev/null +++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas @@ -0,0 +1,1014 @@ +unit schArticulosClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_Articulos = '{D515CBD6-BB7A-4FEA-A69A-2E10784F7EEF}'; + RID_Articulos_Refresh = '{4A54BF1E-2535-4927-8D1D-08616C7D2C74}'; + RID_ArticulosParaCliente = '{2C3C7AEE-22D8-4987-9139-25FB1FF46AF3}'; + + { Data table names } + nme_Articulos = 'Articulos'; + nme_Articulos_Refresh = 'Articulos_Refresh'; + nme_ArticulosParaCliente = 'ArticulosParaCliente'; + + { Articulos fields } + fld_ArticulosID = 'ID'; + fld_ArticulosID_EMPRESA = 'ID_EMPRESA'; + fld_ArticulosREFERENCIA = 'REFERENCIA'; + fld_ArticulosDESCRIPCION = 'DESCRIPCION'; + 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_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + + { Articulos field indexes } + idx_ArticulosID = 0; + idx_ArticulosID_EMPRESA = 1; + idx_ArticulosREFERENCIA = 2; + idx_ArticulosDESCRIPCION = 3; + idx_ArticulosFAMILIA = 4; + idx_ArticulosIMAGEN = 5; + idx_ArticulosCOMISIONABLE = 6; + idx_ArticulosFECHA_ALTA = 7; + idx_ArticulosFECHA_MODIFICACION = 8; + idx_ArticulosUSUARIO = 9; + idx_ArticulosREFERENCIA_PROV = 10; + idx_ArticulosPRECIO_COSTE = 11; + idx_ArticulosPRECIO_PORTE = 12; + idx_ArticulosDESCUENTO = 13; + idx_ArticulosPRECIO_NETO = 14; + idx_ArticulosINVENTARIABLE = 15; + idx_ArticulosID_PROVEEDOR = 16; + idx_ArticulosNOMBRE_PROVEEDOR = 17; + + { Articulos_Refresh fields } + fld_Articulos_RefreshID = 'ID'; + fld_Articulos_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_Articulos_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_Articulos_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_Articulos_RefreshREFERENCIA_PROV = 'REFERENCIA_PROV'; + fld_Articulos_RefreshPRECIO_COSTE = 'PRECIO_COSTE'; + fld_Articulos_RefreshPRECIO_PORTE = 'PRECIO_PORTE'; + fld_Articulos_RefreshDESCUENTO = 'DESCUENTO'; + fld_Articulos_RefreshPRECIO_NETO = 'PRECIO_NETO'; + fld_Articulos_RefreshINVENTARIABLE = 'INVENTARIABLE'; + fld_Articulos_RefreshID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_Articulos_RefreshNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + + { Articulos_Refresh field indexes } + idx_Articulos_RefreshID = 0; + idx_Articulos_RefreshID_EMPRESA = 1; + idx_Articulos_RefreshFECHA_ALTA = 2; + idx_Articulos_RefreshFECHA_MODIFICACION = 3; + idx_Articulos_RefreshREFERENCIA_PROV = 4; + idx_Articulos_RefreshPRECIO_COSTE = 5; + idx_Articulos_RefreshPRECIO_PORTE = 6; + idx_Articulos_RefreshDESCUENTO = 7; + idx_Articulos_RefreshPRECIO_NETO = 8; + idx_Articulos_RefreshINVENTARIABLE = 9; + idx_Articulos_RefreshID_PROVEEDOR = 10; + idx_Articulos_RefreshNOMBRE_PROVEEDOR = 11; + + { ArticulosParaCliente fields } + fld_ArticulosParaClienteID = 'ID'; + fld_ArticulosParaClienteID_EMPRESA = 'ID_EMPRESA'; + fld_ArticulosParaClienteREFERENCIA = 'REFERENCIA'; + fld_ArticulosParaClienteDESCRIPCION = 'DESCRIPCION'; + fld_ArticulosParaClienteFAMILIA = 'FAMILIA'; + fld_ArticulosParaClienteIMAGEN = 'IMAGEN'; + fld_ArticulosParaClienteCOMISIONABLE = 'COMISIONABLE'; + fld_ArticulosParaClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_ArticulosParaClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ArticulosParaClienteUSUARIO = 'USUARIO'; + fld_ArticulosParaClienteREFERENCIA_PROV = 'REFERENCIA_PROV'; + fld_ArticulosParaClientePRECIO_COSTE = 'PRECIO_COSTE'; + fld_ArticulosParaClientePRECIO_PORTE = 'PRECIO_PORTE'; + fld_ArticulosParaClienteDESCUENTO = 'DESCUENTO'; + fld_ArticulosParaClientePRECIO_NETO = 'PRECIO_NETO'; + fld_ArticulosParaClienteID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ArticulosParaClienteINVENTARIABLE = 'INVENTARIABLE'; + fld_ArticulosParaClienteNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + + { ArticulosParaCliente field indexes } + idx_ArticulosParaClienteID = 0; + idx_ArticulosParaClienteID_EMPRESA = 1; + idx_ArticulosParaClienteREFERENCIA = 2; + idx_ArticulosParaClienteDESCRIPCION = 3; + idx_ArticulosParaClienteFAMILIA = 4; + idx_ArticulosParaClienteIMAGEN = 5; + idx_ArticulosParaClienteCOMISIONABLE = 6; + idx_ArticulosParaClienteFECHA_ALTA = 7; + idx_ArticulosParaClienteFECHA_MODIFICACION = 8; + idx_ArticulosParaClienteUSUARIO = 9; + idx_ArticulosParaClienteREFERENCIA_PROV = 10; + idx_ArticulosParaClientePRECIO_COSTE = 11; + idx_ArticulosParaClientePRECIO_PORTE = 12; + idx_ArticulosParaClienteDESCUENTO = 13; + idx_ArticulosParaClientePRECIO_NETO = 14; + idx_ArticulosParaClienteID_PROVEEDOR = 15; + idx_ArticulosParaClienteINVENTARIABLE = 16; + idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 17; + +type + { IArticulos } + IArticulos = interface(IDAStronglyTypedDataTable) + ['{191984D1-46BF-4D8E-843B-5D17BD5D17C3}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetIMAGENValue: IROStream; + procedure SetIMAGENValue(const aValue: IROStream); + function GetCOMISIONABLEValue: Integer; + procedure SetCOMISIONABLEValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetPRECIO_COSTEValue: Float; + procedure SetPRECIO_COSTEValue(const aValue: Float); + function GetPRECIO_PORTEValue: Float; + procedure SetPRECIO_PORTEValue(const aValue: Float); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetPRECIO_NETOValue: Float; + procedure SetPRECIO_NETOValue(const aValue: Float); + function GetINVENTARIABLEValue: Integer; + procedure SetINVENTARIABLEValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property IMAGEN: IROStream read GetIMAGENValue write SetIMAGENValue; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + end; + + { TArticulosDataTableRules } + TArticulosDataTableRules = class(TDADataTableRules, IArticulos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetIMAGENValue: IROStream; virtual; + procedure SetIMAGENValue(const aValue: IROStream); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property IMAGEN: IROStream read GetIMAGENValue write SetIMAGENValue; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IArticulos_Refresh } + IArticulos_Refresh = interface(IDAStronglyTypedDataTable) + ['{C04ECE0F-DE5A-4E68-968E-5F571DE8A918}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetPRECIO_COSTEValue: Float; + procedure SetPRECIO_COSTEValue(const aValue: Float); + function GetPRECIO_PORTEValue: Float; + procedure SetPRECIO_PORTEValue(const aValue: Float); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetPRECIO_NETOValue: Float; + procedure SetPRECIO_NETOValue(const aValue: Float); + function GetINVENTARIABLEValue: Integer; + procedure SetINVENTARIABLEValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + end; + + { TArticulos_RefreshDataTableRules } + TArticulos_RefreshDataTableRules = class(TDADataTableRules, IArticulos_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IArticulosParaCliente } + IArticulosParaCliente = interface(IDAStronglyTypedDataTable) + ['{80519546-6A72-4B4F-AF8F-9400A8B0F17D}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetIMAGENValue: IROStream; + procedure SetIMAGENValue(const aValue: IROStream); + function GetCOMISIONABLEValue: Integer; + procedure SetCOMISIONABLEValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetPRECIO_COSTEValue: Float; + procedure SetPRECIO_COSTEValue(const aValue: Float); + function GetPRECIO_PORTEValue: Float; + procedure SetPRECIO_PORTEValue(const aValue: Float); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetPRECIO_NETOValue: Float; + procedure SetPRECIO_NETOValue(const aValue: Float); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetINVENTARIABLEValue: Integer; + procedure SetINVENTARIABLEValue(const aValue: Integer); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property IMAGEN: IROStream read GetIMAGENValue write SetIMAGENValue; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + end; + + { TArticulosParaClienteDataTableRules } + TArticulosParaClienteDataTableRules = class(TDADataTableRules, IArticulosParaCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetIMAGENValue: IROStream; virtual; + procedure SetIMAGENValue(const aValue: IROStream); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property IMAGEN: IROStream read GetIMAGENValue write SetIMAGENValue; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property PRECIO_COSTE: Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_PORTE: Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property PRECIO_NETO: Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property INVENTARIABLE: Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TArticulosDataTableRules } +constructor TArticulosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TArticulosDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.GetIMAGENValue: IROStream; +begin + result := NewROStream(); + DataTable.Fields[idx_ArticulosIMAGEN].SaveToStream(result); +end; + +procedure TArticulosDataTableRules.SetIMAGENValue(const aValue: IROStream); +begin + DataTable.Fields[idx_ArticulosIMAGEN].LoadFromStream(aValue); +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.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_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.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.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.GetPRECIO_COSTEValue: Float; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsFloat; +end; + +procedure TArticulosDataTableRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsFloat := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_PORTEValue: Float; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsFloat; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsFloat := aValue; +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.GetPRECIO_NETOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_NETO].AsFloat; +end; + +procedure TArticulosDataTableRules.SetPRECIO_NETOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosPRECIO_NETO].AsFloat := aValue; +end; + +function TArticulosDataTableRules.GetINVENTARIABLEValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosINVENTARIABLE].AsInteger; +end; + +procedure TArticulosDataTableRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosINVENTARIABLE].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosID_PROVEEDOR].AsInteger; +end; + +procedure TArticulosDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosID_PROVEEDOR].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].AsString; +end; + +procedure TArticulosDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].AsString := aValue; +end; + + +{ TArticulos_RefreshDataTableRules } +constructor TArticulos_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TArticulos_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TArticulos_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_RefreshID].AsInteger; +end; + +procedure TArticulos_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_RefreshID].AsInteger := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_RefreshID_EMPRESA].AsInteger; +end; + +procedure TArticulos_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_Articulos_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TArticulos_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Articulos_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_Articulos_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TArticulos_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Articulos_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetREFERENCIA_PROVValue: String; +begin + result := DataTable.Fields[idx_Articulos_RefreshREFERENCIA_PROV].AsString; +end; + +procedure TArticulos_RefreshDataTableRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_Articulos_RefreshREFERENCIA_PROV].AsString := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetPRECIO_COSTEValue: Float; +begin + result := DataTable.Fields[idx_Articulos_RefreshPRECIO_COSTE].AsFloat; +end; + +procedure TArticulos_RefreshDataTableRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + DataTable.Fields[idx_Articulos_RefreshPRECIO_COSTE].AsFloat := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetPRECIO_PORTEValue: Float; +begin + result := DataTable.Fields[idx_Articulos_RefreshPRECIO_PORTE].AsFloat; +end; + +procedure TArticulos_RefreshDataTableRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_Articulos_RefreshPRECIO_PORTE].AsFloat := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_Articulos_RefreshDESCUENTO].AsFloat; +end; + +procedure TArticulos_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_Articulos_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetPRECIO_NETOValue: Float; +begin + result := DataTable.Fields[idx_Articulos_RefreshPRECIO_NETO].AsFloat; +end; + +procedure TArticulos_RefreshDataTableRules.SetPRECIO_NETOValue(const aValue: Float); +begin + DataTable.Fields[idx_Articulos_RefreshPRECIO_NETO].AsFloat := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetINVENTARIABLEValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_RefreshINVENTARIABLE].AsInteger; +end; + +procedure TArticulos_RefreshDataTableRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_RefreshINVENTARIABLE].AsInteger := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_RefreshID_PROVEEDOR].AsInteger; +end; + +procedure TArticulos_RefreshDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_RefreshID_PROVEEDOR].AsInteger := aValue; +end; + +function TArticulos_RefreshDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_Articulos_RefreshNOMBRE_PROVEEDOR].AsString; +end; + +procedure TArticulos_RefreshDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_Articulos_RefreshNOMBRE_PROVEEDOR].AsString := aValue; +end; + + +{ TArticulosParaClienteDataTableRules } +constructor TArticulosParaClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TArticulosParaClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TArticulosParaClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaClienteID].AsInteger; +end; + +procedure TArticulosParaClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaClienteID].AsInteger := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaClienteID_EMPRESA].AsInteger; +end; + +procedure TArticulosParaClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaClienteID_EMPRESA].AsInteger := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteREFERENCIA].AsString := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].AsString := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteFAMILIA].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteFAMILIA].AsString := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetIMAGENValue: IROStream; +begin + result := NewROStream(); + DataTable.Fields[idx_ArticulosParaClienteIMAGEN].SaveToStream(result); +end; + +procedure TArticulosParaClienteDataTableRules.SetIMAGENValue(const aValue: IROStream); +begin + DataTable.Fields[idx_ArticulosParaClienteIMAGEN].LoadFromStream(aValue); +end; + +function TArticulosParaClienteDataTableRules.GetCOMISIONABLEValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].AsInteger; +end; + +procedure TArticulosParaClienteDataTableRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].AsInteger := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosParaClienteFECHA_ALTA].AsDateTime; +end; + +procedure TArticulosParaClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosParaClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosParaClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TArticulosParaClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosParaClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteUSUARIO].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteUSUARIO].AsString := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetREFERENCIA_PROVValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].AsString := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetPRECIO_COSTEValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].AsFloat; +end; + +procedure TArticulosParaClienteDataTableRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].AsFloat := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetPRECIO_PORTEValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].AsFloat; +end; + +procedure TArticulosParaClienteDataTableRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].AsFloat := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaClienteDESCUENTO].AsFloat; +end; + +procedure TArticulosParaClienteDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaClienteDESCUENTO].AsFloat := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetPRECIO_NETOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsFloat; +end; + +procedure TArticulosParaClienteDataTableRules.SetPRECIO_NETOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsFloat := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaClienteID_PROVEEDOR].AsInteger; +end; + +procedure TArticulosParaClienteDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaClienteID_PROVEEDOR].AsInteger := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetINVENTARIABLEValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsInteger; +end; + +procedure TArticulosParaClienteDataTableRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsInteger := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].AsString; +end; + +procedure TArticulosParaClienteDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_Articulos, TArticulosDataTableRules); + RegisterDataTableRules(RID_Articulos_Refresh, TArticulos_RefreshDataTableRules); + RegisterDataTableRules(RID_ArticulosParaCliente, TArticulosParaClienteDataTableRules); + +end. diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas new file mode 100644 index 00000000..e3bee740 --- /dev/null +++ b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas @@ -0,0 +1,1189 @@ +unit schArticulosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_ArticulosDelta = '{1B840EF8-2107-4C47-9A42-88571AED53A0}'; + RID_Articulos_RefreshDelta = '{F199A8AD-F0AB-43F9-B87F-0C26FEE26531}'; + RID_ArticulosParaClienteDelta = '{FFAC82A1-7347-46D5-95ED-B6A9C084E3C5}'; + +type + { IArticulosDelta } + IArticulosDelta = interface(IArticulos) + ['{1B840EF8-2107-4C47-9A42-88571AED53A0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : 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 : Float; + function GetOldPRECIO_PORTEValue : Float; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Float; + function GetOldINVENTARIABLEValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + 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 : Float read GetOldPRECIO_COSTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + end; + + { TArticulosBusinessProcessorRules } + TArticulosBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulos, IArticulosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + function GetOldFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetOldIMAGENValue: IROStream; virtual; + procedure SetIMAGENValue(const aValue: IROStream); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + function GetOldCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + function GetOldPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + function GetOldPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + function GetOldPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + function GetOldINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property IMAGEN : IROStream read GetIMAGENValue write SetIMAGENValue; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property COMISIONABLE : Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property PRECIO_COSTE : Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property OldPRECIO_COSTE : Float read GetOldPRECIO_COSTEValue; + property PRECIO_PORTE : Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property PRECIO_NETO : Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property INVENTARIABLE : Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IArticulos_RefreshDelta } + IArticulos_RefreshDelta = interface(IArticulos_Refresh) + ['{F199A8AD-F0AB-43F9-B87F-0C26FEE26531}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldREFERENCIA_PROVValue : String; + function GetOldPRECIO_COSTEValue : Float; + function GetOldPRECIO_PORTEValue : Float; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Float; + function GetOldINVENTARIABLEValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldPRECIO_COSTE : Float read GetOldPRECIO_COSTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + end; + + { TArticulos_RefreshBusinessProcessorRules } + TArticulos_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulos_Refresh, IArticulos_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + function GetOldPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + function GetOldPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + function GetOldPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + function GetOldINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property PRECIO_COSTE : Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property OldPRECIO_COSTE : Float read GetOldPRECIO_COSTEValue; + property PRECIO_PORTE : Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property PRECIO_NETO : Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property INVENTARIABLE : Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IArticulosParaClienteDelta } + IArticulosParaClienteDelta = interface(IArticulosParaCliente) + ['{FFAC82A1-7347-46D5-95ED-B6A9C084E3C5}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : 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 : Float; + function GetOldPRECIO_PORTEValue : Float; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Float; + function GetOldID_PROVEEDORValue : Integer; + function GetOldINVENTARIABLEValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + 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 : Float read GetOldPRECIO_COSTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + end; + + { TArticulosParaClienteBusinessProcessorRules } + TArticulosParaClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulosParaCliente, IArticulosParaClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + function GetOldFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetOldIMAGENValue: IROStream; virtual; + procedure SetIMAGENValue(const aValue: IROStream); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + function GetOldCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetPRECIO_COSTEValue: Float; virtual; + function GetOldPRECIO_COSTEValue: Float; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Float); virtual; + function GetPRECIO_PORTEValue: Float; virtual; + function GetOldPRECIO_PORTEValue: Float; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetPRECIO_NETOValue: Float; virtual; + function GetOldPRECIO_NETOValue: Float; virtual; + procedure SetPRECIO_NETOValue(const aValue: Float); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetINVENTARIABLEValue: Integer; virtual; + function GetOldINVENTARIABLEValue: Integer; virtual; + procedure SetINVENTARIABLEValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property IMAGEN : IROStream read GetIMAGENValue write SetIMAGENValue; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property COMISIONABLE : Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property PRECIO_COSTE : Float read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property OldPRECIO_COSTE : Float read GetOldPRECIO_COSTEValue; + property PRECIO_PORTE : Float read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property OldPRECIO_PORTE : Float read GetOldPRECIO_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property PRECIO_NETO : Float read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property OldPRECIO_NETO : Float read GetOldPRECIO_NETOValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property INVENTARIABLE : Integer read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property OldINVENTARIABLE : Integer read GetOldINVENTARIABLEValue; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TArticulosBusinessProcessorRules } +constructor TArticulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TArticulosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TArticulosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID]; +end; + +function TArticulosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID]; +end; + +procedure TArticulosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA]; +end; + +function TArticulosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID_EMPRESA]; +end; + +procedure TArticulosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA]; +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA]; +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION]; +end; + +function TArticulosBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCRIPCION]; +end; + +procedure TArticulosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA]; +end; + +function TArticulosBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFAMILIA]; +end; + +procedure TArticulosBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN], result.Stream); +end; + +function TArticulosBusinessProcessorRules.GetOldIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosIMAGEN], result.Stream); +end; + +procedure TArticulosBusinessProcessorRules.SetIMAGENValue(const aValue: IROStream); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN] := VariantBinaryFromBinary(aValue.Stream); +end; + +function TArticulosBusinessProcessorRules.GetCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE]; +end; + +function TArticulosBusinessProcessorRules.GetOldCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosCOMISIONABLE]; +end; + +procedure TArticulosBusinessProcessorRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA]; +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_ALTA]; +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION]; +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_MODIFICACION]; +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO]; +end; + +function TArticulosBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosUSUARIO]; +end; + +procedure TArticulosBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV]; +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA_PROV]; +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_COSTE]; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PORTE]; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO]; +end; + +function TArticulosBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCUENTO]; +end; + +procedure TArticulosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_NETO]; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE]; +end; + +function TArticulosBusinessProcessorRules.GetOldINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosINVENTARIABLE]; +end; + +procedure TArticulosBusinessProcessorRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_PROVEEDOR]; +end; + +function TArticulosBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID_PROVEEDOR]; +end; + +procedure TArticulosBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_PROVEEDOR] := aValue; +end; + +function TArticulosBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOMBRE_PROVEEDOR]; +end; + +function TArticulosBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosNOMBRE_PROVEEDOR]; +end; + +procedure TArticulosBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOMBRE_PROVEEDOR] := aValue; +end; + + +{ TArticulos_RefreshBusinessProcessorRules } +constructor TArticulos_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TArticulos_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshID]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID_EMPRESA]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshID_EMPRESA]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID_EMPRESA] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshFECHA_ALTA]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshFECHA_ALTA]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshFECHA_ALTA] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshFECHA_MODIFICACION]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshFECHA_MODIFICACION]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshREFERENCIA_PROV]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshREFERENCIA_PROV]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshREFERENCIA_PROV] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_COSTE]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshPRECIO_COSTE]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_COSTE] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_PORTE]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshPRECIO_PORTE]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_PORTE] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshDESCUENTO]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshDESCUENTO]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshDESCUENTO] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_NETO]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshPRECIO_NETO]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshPRECIO_NETO] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshINVENTARIABLE]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshINVENTARIABLE]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshINVENTARIABLE] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID_PROVEEDOR]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshID_PROVEEDOR]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshID_PROVEEDOR] := aValue; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshNOMBRE_PROVEEDOR]; +end; + +function TArticulos_RefreshBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_RefreshNOMBRE_PROVEEDOR]; +end; + +procedure TArticulos_RefreshBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_RefreshNOMBRE_PROVEEDOR] := aValue; +end; + + +{ TArticulosParaClienteBusinessProcessorRules } +constructor TArticulosParaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TArticulosParaClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteID]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID_EMPRESA]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteID_EMPRESA]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID_EMPRESA] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteREFERENCIA]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteREFERENCIA]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteREFERENCIA] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteDESCRIPCION]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteDESCRIPCION]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteDESCRIPCION] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFAMILIA]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteFAMILIA]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFAMILIA] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetIMAGENValue(const aValue: IROStream); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN] := VariantBinaryFromBinary(aValue.Stream); +end; + +function TArticulosParaClienteBusinessProcessorRules.GetCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteCOMISIONABLE]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteCOMISIONABLE]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteCOMISIONABLE] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFECHA_ALTA]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteFECHA_ALTA]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFECHA_ALTA] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFECHA_MODIFICACION]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteFECHA_MODIFICACION]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFECHA_MODIFICACION] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteUSUARIO]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteUSUARIO]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteUSUARIO] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteREFERENCIA_PROV]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteREFERENCIA_PROV]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteREFERENCIA_PROV] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_COSTE]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldPRECIO_COSTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClientePRECIO_COSTE]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_COSTE] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PORTE]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldPRECIO_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClientePRECIO_PORTE]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PORTE] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteDESCUENTO]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteDESCUENTO]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteDESCUENTO] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_NETO]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldPRECIO_NETOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClientePRECIO_NETO]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_NETO] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID_PROVEEDOR]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteID_PROVEEDOR]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteID_PROVEEDOR] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteINVENTARIABLE]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldINVENTARIABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteINVENTARIABLE]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetINVENTARIABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteINVENTARIABLE] := aValue; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteNOMBRE_PROVEEDOR]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteNOMBRE_PROVEEDOR]; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteNOMBRE_PROVEEDOR] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ArticulosDelta, TArticulosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Articulos_RefreshDelta, TArticulos_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ArticulosParaClienteDelta, TArticulosParaClienteBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Articulos/Model/uBizArticulos.pas b/Source/Modulos/Articulos/Model/uBizArticulos.pas new file mode 100644 index 00000000..100cff7d --- /dev/null +++ b/Source/Modulos/Articulos/Model/uBizArticulos.pas @@ -0,0 +1,123 @@ +unit uBizArticulos; + +interface + +uses + uDAInterfaces, uDADataTable, schArticulosClient_Intf, uDBSelectionListUtils; + +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; + end; + + TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + procedure OnNewRecord(Sender: TDADataTable); override; + 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; + end; + +implementation + +uses + uDataTableUtils, uDataModuleUsuarios, 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; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizArticulo.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizArticulo.EsNuevo: Boolean; +begin + Result := (ID < 0); +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 := dmUsuarios.IDEmpresaActual; + PRECIO_PORTE := 0; + PRECIO_COSTE := 0; + DESCUENTO := 0; + PRECIO_NETO := 0; + COMISIONABLE := 1; + USUARIO := dmUsuarios.LoginInfo.Usuario; +end; + +procedure TBizArticulo.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + INVENTARIABLE := 1; + IniciarValoresArticuloNuevo; +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; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ARTICULO, TBizArticulo); + +finalization + +end. + diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj b/Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj new file mode 100644 index 00000000..44d9a390 --- /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.dpk b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk new file mode 100644 index 00000000..49ebc202 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk @@ -0,0 +1,43 @@ +package Articulos_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Articulos_view, + Articulos_controller, + Articulos_model, + Contactos_view; + +contains + uPluginArticulos in 'uPluginArticulos.pas'; + +end. diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc b/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.res b/Source/Modulos/Articulos/Plugin/Articulos_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Articulos/Plugin/Articulos_plugin.res differ diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm new file mode 100644 index 00000000..0ac32d65 --- /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 = 'Cat'#225'logo 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 = 100 + 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 00000000..c8c450cb --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/uPluginArticulos.pas @@ -0,0 +1,74 @@ +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; + AArticulos : IBizArticulo; + +begin + AArticulosController := TArticulosController.Create; + AArticulos := (AArticulosController.BuscarTodos as IBizArticulo); + AArticulosController.VerTodos(AArticulos); +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.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm new file mode 100644 index 00000000..53d2568d --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm @@ -0,0 +1,1359 @@ +object srvArticulos: TsrvArticulos + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schArticulos + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnAfterGetDatasetData = DARemoteServiceAfterGetDatasetData + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Articulos_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'Articulos_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descripci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Articulos_FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Familia' + Alignment = taLeftJustify + end + item + Name = 'Articulos_IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Foto' + Alignment = taLeftJustify + end + item + Name = 'Articulos_COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Comisionable' + Alignment = taLeftJustify + end + item + Name = 'Articulos_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'Articulos_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'Articulos_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'Articulos_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + end + item + Name = 'Articulos_PRECIO_COSTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe' + Alignment = taLeftJustify + end + item + Name = 'Articulos_PRECIO_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Porte' + Alignment = taLeftJustify + end + item + Name = 'Articulos_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + Alignment = taLeftJustify + end + item + Name = 'Articulos_ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Articulos_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Articulos_PRECIO_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PRECIO_NETO' + Alignment = taLeftJustify + end + item + Name = 'Articulos_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PROVEEDOR' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'Articulos_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schArticulos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA,' + + ' ARTICULOS.DESCRIPCION,'#10' ARTICULOS.FAMILIA, ARTICULOS.IMAG' + + 'EN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,'#10' ARTICUL' + + 'OS.FECHA_MODIFICACION, ARTICULOS.USUARIO,'#10' ARTICULOS.REFER' + + 'ENCIA_PROV,'#10' ARTICULOS.PRECIO_COSTE,'#10' ARTICULOS.PREC' + + 'IO_PORTE,'#10' ARTICULOS.DESCUENTO,'#10' ARTICULOS.PRECIO_NE' + + 'TO,'#10' ARTICULOS.INVENTARIABLE,'#10' ARTICULOS.ID_PROVEEDO' + + 'R,'#10' CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR'#10'FROM ARTICULOS'#10'LE' + + 'FT OUTER JOIN CONTACTOS ON'#10' (CONTACTOS.ID = ARTICULOS.ID_PRO' + + 'VEEDOR)' + 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 = 'DESCRIPCION' + TableField = 'DESCRIPCION' + 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 = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end> + end> + Name = 'Articulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.FECHA_ALTA,' + + #10' ARTICULOS.FECHA_MODIFICACION,'#10' ARTICULOS.REFERENCI' + + 'A_PROV,'#10' ARTICULOS.PRECIO_COSTE,'#10' ARTICULOS.PRECIO_P' + + 'ORTE,'#10' ARTICULOS.DESCUENTO,'#10' ARTICULOS.PRECIO_NETO,'#10 + + ' ARTICULOS.INVENTARIABLE,'#10' ARTICULOS.ID_PROVEEDOR,'#10' ' + + ' CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR'#10'FROM ARTICULOS'#10'LEFT O' + + 'UTER JOIN CONTACTOS ON'#10' (CONTACTOS.ID = ARTICULOS.ID_PROVEED' + + 'OR)'#10'WHERE ARTICULOS.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + 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 = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'PRECIO_NETO' + TableField = 'PRECIO_NETO' + end + item + DatasetField = 'REFERENCIA_PROV' + TableField = 'REFERENCIA_PROV' + end + item + DatasetField = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end> + end> + Name = 'Articulos_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_CLIENTE' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA,' + + ' ARTICULOS.DESCRIPCION,'#10' ARTICULOS.FAMILIA, ARTICULOS.IMAG' + + 'EN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,'#10' ARTICUL' + + 'OS.FECHA_MODIFICACION, ARTICULOS.USUARIO,'#10' ARTICULOS.REFER' + + 'ENCIA_PROV,'#10' ARTICULOS.PRECIO_COSTE,'#10' ARTICULOS.PREC' + + 'IO_PORTE,'#10' CLIENTES_DTOS_PROVEEDORES.DESCUENTO,'#10' ART' + + 'ICULOS.PRECIO_NETO,'#10' ARTICULOS.ID_PROVEEDOR,'#10' ARTICU' + + 'LOS.INVENTARIABLE,'#10' CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR'#10'F' + + 'ROM ARTICULOS'#10'LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTIC' + + 'ULOS.ID_PROVEEDOR)'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES ON ' + + '((CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDO' + + 'R)'#10'AND (CLIENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))' + 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 = 'DESCRIPCION' + TableField = 'DESCRIPCION' + 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 = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end> + end> + Name = 'ArticulosParaCliente' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'INSERT'#10' INTO ARTICULOS'#10' (ID, ID_EMPRESA, REFERENCIA, DESCRIP' + + 'CION, FAMILIA, IMAGEN, '#10' COMISIONABLE, FECHA_ALTA, FECHA_MOD' + + 'IFICACION, USUARIO, '#10' PRECIO_COSTE, PRECIO_PORTE, DESCUENTO,' + + ' ID_PROVEEDOR, '#10' PRECIO_NETO, REFERENCIA_PROV, INVENTARIABLE' + + ')'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCRIPCION, :FA' + + 'MILIA, '#10' :IMAGEN, :COMISIONABLE, :FECHA_ALTA, :FECHA_MODIFIC' + + 'ACION, '#10' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, :DESCUENTO,' + + ' '#10' :ID_PROVEEDOR, :PRECIO_NETO, :REFERENCIA_PROV,'#10' :INVE' + + 'NTARIABLE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Articulos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = 'DELETE '#10' FROM'#10' ARTICULOS'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Articulos' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMAGEN' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COMISIONABLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_COSTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECIO_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INVENTARIABLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'UPDATE ARTICULOS'#10' SET '#10' ID = :ID, '#10' ID_EMPRESA = :ID_EMPR' + + 'ESA, '#10' REFERENCIA = :REFERENCIA, '#10' DESCRIPCION = :DESCRIPC' + + 'ION, '#10' FAMILIA = :FAMILIA, '#10' IMAGEN = :IMAGEN, '#10' COMISI' + + 'ONABLE = :COMISIONABLE, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FECH' + + 'A_MODIFICACION = :FECHA_MODIFICACION, '#10' USUARIO = :USUARIO, '#10 + + ' PRECIO_COSTE = :PRECIO_COSTE, '#10' PRECIO_PORTE = :PRECIO_PO' + + 'RTE, '#10' DESCUENTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEE' + + 'DOR, '#10' PRECIO_NETO = :PRECIO_NETO,'#10' INVENTARIABLE = :INVEN' + + 'TARIABLE,'#10' REFERENCIA_PROV = :REFERENCIA_PROV'#10' WHERE'#10' (ID' + + ' = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Articulos' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Articulos' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Articulos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Articulos' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Articulos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Articulos' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Articulos' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object bpArticulos: TDABusinessProcessor + Schema = schArticulos + InsertCommandName = 'Insert_Articulos' + DeleteCommandName = 'Delete_Articulos' + UpdateCommandName = 'Update_Articulos' + RefreshDatasetName = 'Articulos_Refresh' + ReferencedDataset = 'Articulos' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 264 + Top = 24 + 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 00000000..3d97bca0 --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas @@ -0,0 +1,86 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDAInterfaces; + +type + { TsrvArticulos } + TsrvArticulos = class(TDARemoteService, IsrvArticulos) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + bpArticulos: TDABusinessProcessor; + schArticulos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvArticulos methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvArticulos(out anInstance : IUnknown); +begin + anInstance := TsrvArticulos.Create(NIL); +end; + +{ srvArticulos } +procedure TsrvArticulos.DARemoteServiceAfterGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_Articulos then + begin + { Aquí se asegura que el usuario sólo 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvArticulos.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvArticulos.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..e794ddfb --- /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.dpk b/Source/Modulos/Articulos/Views/Articulos_view.dpk new file mode 100644 index 00000000..cce496ef --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.dpk @@ -0,0 +1,88 @@ +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 + rtl, + Articulos_controller, + Articulos_model, + vcl, + dbrtl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvAppFrmD10R, + JvSystemD10R, + PngComponentsD10, + PNG_D10, + dsnap, + adortl, + Familias_model, + Familias_controller, + tbx_d10, + tb2k_d10, + JvPageCompsD10R, + JvStdCtrlsD10R, + dxLayoutControlD10, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + Contactos_view; + +contains + uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame}, + uEditorArticulos in 'uEditorArticulos.pas' {fEditorArticulos: TfEditorArticulos}, + 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}; + +end. diff --git a/Source/Modulos/Articulos/Views/Articulos_view.rc b/Source/Modulos/Articulos/Views/Articulos_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Articulos/Views/Articulos_view.res b/Source/Modulos/Articulos/Views/Articulos_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Articulos/Views/Articulos_view.res differ diff --git a/Source/Modulos/Articulos/Views/uArticulosViewRegister.pas b/Source/Modulos/Articulos/Views/uArticulosViewRegister.pas new file mode 100644 index 00000000..29559a0d --- /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.dfm b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm new file mode 100644 index 00000000..b4c51fda --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm @@ -0,0 +1,664 @@ +inherited fEditorArticulo: TfEditorArticulo + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de art'#237'culo' + ClientHeight = 480 + ClientWidth = 624 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 632 + ExplicitHeight = 514 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 624 + Caption = 'Art'#237'culo' + ExplicitWidth = 624 + inherited Image1: TImage + Left = 597 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F + 033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC + EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F + 1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB + 1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590 + 60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01 + 5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010 + 7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233 + 3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9 + CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685 + 4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082} + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 624 + ExplicitWidth = 624 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 394 + 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 = 624 + 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 = 624 + Height = 385 + ExplicitWidth = 624 + ExplicitHeight = 385 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 616 + ExplicitHeight = 357 + end + end + inherited StatusBar: TJvStatusBar + Top = 461 + Width = 624 + Panels = < + item + Width = 200 + end> + ExplicitTop = 461 + ExplicitWidth = 624 + end + inherited EditorActionList: TActionList + Top = 128 + 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 = 168 + Top = 120 + 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 = 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/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas new file mode 100644 index 00000000..86965f34 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas @@ -0,0 +1,212 @@ +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; + +type + TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + TBXItem33: TTBXItem; + actFamilias: TAction; + TBXSeparatorItem6: TTBXSeparatorItem; + 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 artículo' + else + FTitulo := 'Artículo'; + 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 + FViewArticulo.Articulo := Articulo; +end; + +procedure TfEditorArticulo.SetController(const Value: IArticulosController); +begin + FController := Value; + if Assigned(FController) then + (ViewArticulo as IViewArticulo).Controller := (FController as IArticulosController); +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 ningún almacén 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?', 'Atención', 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.dfm b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm new file mode 100644 index 00000000..7339c2d8 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm @@ -0,0 +1,1421 @@ +inherited fEditorArticulos: TfEditorArticulos + Left = 489 + Top = 325 + Caption = 'Lista de art'#237'culos' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de articulos' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F + 033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC + EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F + 1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB + 1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590 + 60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01 + 5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010 + 7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233 + 3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9 + CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685 + 4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082} + ExplicitLeft = 516 + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 543 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 260 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: 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 +end diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.pas b/Source/Modulos/Articulos/Views/uEditorArticulos.pas new file mode 100644 index 00000000..d0a328e5 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulos.pas @@ -0,0 +1,189 @@ +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; + +type + TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos) + actFamilias: TAction; + procedure FormShow(Sender: TObject); + procedure actFamiliasExecute(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 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 Articulos: IBizArticulo read GetArticulos write SetArticulos; + property Controller : IArticulosController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, + uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController, + cxGrid, cxGridCustomTableView; //, uListaArticulos; + +{$R *.dfm} + +{ +****************************** TfEditorArticulos ******************************* +} +procedure TfEditorArticulos.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 ningún articulo asignado'); + + Articulos.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorArticulos.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +function TfEditorArticulos.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfEditorArticulos.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorArticulos.ModificarInterno; +begin + inherited; + FController.Ver(Articulos); +end; + +procedure TfEditorArticulos.NuevoInterno; +begin + inherited; + FController.Anadir(Articulos); + FController.Ver(Articulos); +end; + +procedure TfEditorArticulos.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de artículos - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorArticulos.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + dsDataTable.DataTable := FArticulos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Articulos := Articulos; +end; + +procedure TfEditorArticulos.SetController(const Value: IArticulosController); +begin + FController := Value; +end; + +destructor TfEditorArticulos.Destroy; +begin + FArticulos := 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 artículo?', '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(Articulos) then + actRefrescar.Execute; + 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; + +procedure TfEditorArticulos.AsignarVista; +begin + ViewGrid := CreateView(TfrViewArticulos) as IViewArticulos; +end; + +constructor TfEditorArticulos.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +end. + diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm new file mode 100644 index 00000000..7ae18de0 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm @@ -0,0 +1,180 @@ +inherited fEditorElegirArticulos: TfEditorElegirArticulos + Caption = 'Seleccionar art'#237'culos' + ClientWidth = 656 + ExplicitWidth = 664 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 656 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione los art'#237'culos') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitTop = 87 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Caption = 'Lista de art'#237'culos' + Visible = False + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 656 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Align = alLeft + DockPos = -6 + ExplicitWidth = 346 + 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 + Left = 346 + Top = 23 + Align = alLeft + DockPos = 101 + DockRow = 1 + ExplicitLeft = 346 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + Visible = False + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 376 + 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 = 376 + 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 EditorActionList: TActionList [5] + Left = 112 + Top = 192 + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + Left = 8 + Top = 192 + 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 00000000..d3f5c1bf --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas @@ -0,0 +1,125 @@ +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, JvgWizardHeader, StdCtrls, + uEditorArticulos, uBizArticulos, uIEditorElegirArticulos, + JvExComCtrls, JvStatusBar; + +type + TfEditorElegirArticulos = class(TfEditorArticulos, IEditorElegirArticulos) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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: IBizArticulo; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridUtils, uEditorBase, uArticulosController; + +{$R *.dfm} + +{ TfEditorElegirArticulos } + +procedure TfEditorElegirArticulos.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirArticulos.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirArticulos.FormShow(Sender: TObject); +begin + inherited; + 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.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.GetMensaje: String; +begin + Result := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirArticulos.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirArticulos.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm new file mode 100644 index 00000000..cc48a58b --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm @@ -0,0 +1,560 @@ +inherited frViewArticulo: TfrViewArticulo + Width = 451 + Height = 304 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlArticulo: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 393 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + DesignSize = ( + 451 + 393) + object PngSpeedButton2: TPngSpeedButton + Left = 546 + Top = 28 + 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 = 546 + Top = 56 + Width = 23 + Height = 22 + Action = actEliminar + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eReferencia: TcxDBTextEdit + Left = 103 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = dsViewArticulo + 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 eDescripcion: TcxDBTextEdit + Left = 103 + 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 + 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 = 108 + end + object eNoComisionable: TcxDBCheckBox + Left = 103 + Top = 109 + 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 + 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 = 144 + end + object eImagen: TcxImage + Left = 409 + Top = 28 + 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 + 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 + Height = 100 + Width = 140 + end + object cbFamilia: TcxDBComboBox + Left = 103 + 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.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 = 2 + Width = 70 + end + inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor + Left = 219 + Top = 166 + Width = 350 + Height = 202 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 11 + ReadOnly = False + ExplicitLeft = 219 + ExplicitTop = 166 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + end + end + object eReferenciaProv: TcxDBTextEdit + Left = 103 + Top = 166 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROV' + DataBinding.DataSource = dsViewArticulo + 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 = 6 + Width = 86 + end + object ePrecioCoste: TcxDBCurrencyEdit + Left = 103 + Top = 193 + DataBinding.DataField = 'PRECIO_COSTE' + DataBinding.DataSource = dsViewArticulo + Properties.Alignment.Horz = taRightJustify + 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 = 86 + end + object eDescuento: TcxDBSpinEdit + Left = 103 + Top = 220 + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = dsViewArticulo + Properties.Alignment.Horz = taRightJustify + 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.ButtonStyle = bts3D + 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 = 86 + end + object ePrecioNeto: TcxDBCurrencyEdit + Left = 103 + Top = 247 + DataBinding.DataField = 'PRECIO_NETO' + DataBinding.DataSource = dsViewArticulo + Enabled = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clBtnFace + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.TextColor = clWindowText + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 86 + end + object ePrecioPorte: TcxDBCurrencyEdit + Left = 103 + Top = 274 + DataBinding.DataField = 'PRECIO_PORTE' + DataBinding.DataSource = dsViewArticulo + Properties.Alignment.Horz = taRightJustify + 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 = 10 + Width = 86 + end + object cbNoInventariable: TcxDBCheckBox + Left = 242 + Top = 109 + 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 + 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 = 144 + end + object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloGroup7: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlArticuloGroup1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos del art'#237'culo' + object dxLayoutControlArticuloItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcion + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup6: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Familia:' + Control = cbFamilia + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup8: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlArticuloItem1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Control = eNoComisionable + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + ShowCaption = False + Control = cbNoInventariable + ControlOptions.ShowBorder = False + end + end + end + end + end + object dxLayoutControlArticuloGroup2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + 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 + object dxLayoutControlArticuloGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlArticuloGroup11: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del proveedor para el art'#237'culo' + object dxLayoutControlArticuloItem15: TdxLayoutItem + Caption = 'Ref. del prov:' + Control = eReferenciaProv + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem16: TdxLayoutItem + Caption = 'Precio:' + Control = ePrecioCoste + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem17: TdxLayoutItem + Caption = 'Dto (%):' + Control = eDescuento + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem18: TdxLayoutItem + Caption = 'Precio neto:' + Control = ePrecioNeto + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem19: TdxLayoutItem + Caption = 'Coste de envio:' + Control = ePrecioPorte + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloGroup12: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Proveedor para el art'#237'culo' + object dxLayoutControlArticuloItem14: TdxLayoutItem + Control = frViewDatosYSeleccionProveedor1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + 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 00000000..800a3fe9 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas @@ -0,0 +1,282 @@ +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; + +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; + dxLayoutControlArticuloGroup7: TdxLayoutGroup; + eImagen: TcxImage; + dxLayoutControlArticuloItem6: TdxLayoutItem; + dxLayoutControlArticuloGroup5: TdxLayoutGroup; + dxLayoutControlArticuloItem4: TdxLayoutItem; + cbFamilia: TcxDBComboBox; + dxLayoutControlArticuloGroup6: TdxLayoutGroup; + dxLayoutControlArticuloItem14: TdxLayoutItem; + frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor; + dxLayoutControlArticuloItem15: TdxLayoutItem; + eReferenciaProv: TcxDBTextEdit; + dxLayoutControlArticuloItem16: TdxLayoutItem; + ePrecioCoste: TcxDBCurrencyEdit; + dxLayoutControlArticuloItem17: TdxLayoutItem; + eDescuento: TcxDBSpinEdit; + dxLayoutControlArticuloItem18: TdxLayoutItem; + ePrecioNeto: TcxDBCurrencyEdit; + dxLayoutControlArticuloItem19: TdxLayoutItem; + ePrecioPorte: TcxDBCurrencyEdit; + dxLayoutControlArticuloGroup11: TdxLayoutGroup; + dxLayoutControlArticuloGroup12: TdxLayoutGroup; + dxLayoutControlArticuloItem7: TdxLayoutItem; + cbNoInventariable: TcxDBCheckBox; + dxLayoutControlArticuloGroup8: 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 CustomViewShow(Sender: TObject); + procedure PrecioNetoChanged(Sender: TObject); + private + procedure CargarImagen; + procedure SalvarImagen; + protected + FFamiliasController: IFamiliasController; + 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; + +{$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.cbFamiliaPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbFamilia.Properties.Items do + begin + BeginUpdate; + try + Clear; + AddStrings(FFamiliasController.DarListaFamilias); + finally + EndUpdate; + 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 + 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; + AFamilias := NIL; + end; + end; + end; +end; + +procedure TfrViewArticulo.CustomViewCreate(Sender: TObject); +begin + inherited; + FFamiliasController := TFamiliasController.Create; +end; + +procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject); +begin + FFamiliasController := Nil; + ePrecioCoste.Properties.OnEditValueChanged := Nil; + eDescuento.Properties.OnEditValueChanged := Nil; + inherited; +end; + +procedure TfrViewArticulo.CustomViewShow(Sender: TObject); +begin + inherited; + ePrecioCoste.Properties.OnEditValueChanged := PrecioNetoChanged; + eDescuento.Properties.OnEditValueChanged := PrecioNetoChanged; +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.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm new file mode 100644 index 00000000..6ab6def4 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -0,0 +1,226 @@ +inherited frViewArticulos: TfrViewArticulos + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded] + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + end + item + Format = '0 Art'#237'culos' + Kind = skCount + Column = cxGridViewDESCRIPCION + end> + OptionsBehavior.PullFocusing = True + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewINVENTARIABLE: TcxGridDBColumn + Caption = #191'Inventariable?' + DataBinding.FieldName = 'INVENTARIABLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 0 + Tag = 1 + Value = 1 + end> + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewCOMISIONABLE: TcxGridDBColumn + Caption = #191'Comisionable?' + DataBinding.FieldName = 'COMISIONABLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.DefaultDescription = 'S'#237 + Properties.DefaultImageIndex = 1 + Properties.Images = PngImageList + 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 + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 60 + Width = 60 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + BestFitMaxWidth = 120 + Width = 120 + 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 coste' + DataBinding.FieldName = 'PRECIO_COSTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + 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 %' + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_NETO: TcxGridDBColumn + Caption = 'Precio neto' + DataBinding.FieldName = 'PRECIO_NETO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_PORTE: TcxGridDBColumn + Caption = 'Precio porte' + DataBinding.FieldName = 'PRECIO_PORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Visible = True + ExplicitWidth = 554 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited TBXToolbar1: TTBXToolbar + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actFamilia + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actProveedor + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited ActionList1: TActionList + Left = 352 + Top = 560 + object actFamilia: TAction + Caption = 'Familia' + OnExecute = actFamiliaExecute + OnUpdate = actFamiliaUpdate + end + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + end + inherited PngImageList10: TPngImageList + Left = 320 + Top = 560 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + object PngImageList: 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 = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000B64944415478DA6364A010300E2A031C80B800CA9E00C407408C008F + 00850F3F3E2C3870E080032103E09A900D031AD0B061C70607A8185E03FE03B1 + 2094FD1E24E7E0E12070E1C2850D1F5E7C4800F21F90EC0207078702A0D30370 + D94E300C0404040E7CF8F0A101C960BC06A000A0ED0140DB0BA006630D604206 + 00F51F0029DE802B80711A000C798703270E34009D0FF33B4600E335C0C0C0E0 + 0028F4A136630D60425E00290685FE075C014C300C8805036F00007263471179 + E402210000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 160 + Top = 32 + Bitmap = {} + end +end diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas new file mode 100644 index 00000000..97c604df --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -0,0 +1,134 @@ +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, dxPScxGridLnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg; + +type + IViewArticulos = interface(IViewGrid) + ['{4C09BEC8-C82B-4DE8-8C36-40DB62224E95}'] + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + end; + + TfrViewArticulos = class(TfrViewGrid, IViewArticulos) + PngImageList: TPngImageList; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn; + actFamilia: TAction; + actProveedor: TAction; + TBXItem2: TTBXItem; + TBXItem3: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewINVENTARIABLE: TcxGridDBColumn; + procedure cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure actFamiliaExecute(Sender: TObject); + procedure actFamiliaUpdate(Sender: TObject); + protected + FArticulos: IBizArticulo; + function GetArticulos: IBizArticulo; virtual; + procedure SetArticulos(const Value: IBizArticulo); virtual; + public + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + end; + +implementation + +uses uDataModuleArticulos; + + +{$R *.dfm} + +{ TfrViewArticulos } + +{ +******************************* TfrViewArticulos ******************************* +} +function TfrViewArticulos.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + if Assigned(FArticulos) then + dsDataSource.DataTable := FArticulos.DataTable; +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.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 TfrViewArticulos.actProveedorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0); +end; + +procedure TfrViewArticulos.cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); + ADone := True; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm new file mode 100644 index 00000000..824cb7c6 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm @@ -0,0 +1,354 @@ +inherited frViewDetallesArticulos: TfrViewDetallesArticulos + ParentBiDiMode = False + inherited ToolBar1: TToolBar + inherited ToolButton4: TToolButton + Wrap = True + end + inherited ToolButton14: TToolButton + Left = 0 + Top = 24 + Wrap = False + ExplicitLeft = 0 + ExplicitTop = 24 + end + inherited FontName: TJvFontComboBox + Left = 34 + ExplicitLeft = 34 + end + inherited FontSize: TEdit + Left = 179 + Width = 42 + ExplicitLeft = 179 + ExplicitWidth = 42 + end + inherited UpDown1: TUpDown + Left = 221 + Width = 17 + ExplicitLeft = 221 + ExplicitWidth = 17 + end + inherited ToolButton13: TToolButton + Left = 238 + ExplicitLeft = 238 + end + inherited ToolButton6: TToolButton + Left = 246 + ExplicitLeft = 246 + end + inherited ToolButton7: TToolButton + Left = 280 + ExplicitLeft = 280 + end + inherited ToolButton8: TToolButton + Left = 314 + ExplicitLeft = 314 + end + inherited ToolButton12: TToolButton + Left = 348 + ExplicitLeft = 348 + end + inherited ToolButton9: TToolButton + Left = 356 + ExplicitLeft = 356 + end + inherited ToolButton10: TToolButton + Left = 390 + ExplicitLeft = 390 + end + inherited ToolButton11: TToolButton + Left = 424 + ExplicitLeft = 424 + end + end + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewTIPO: TcxGridDBColumn + Visible = False + Width = 26 + end + object cxGridViewID_ARTICULO: TcxGridDBColumn [3] + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + Width = 31 + end + object cxGridViewREFERENCIA: TcxGridDBColumn [4] + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Width = 59 + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn [5] + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + PropertiesClassName = 'TcxTextEditProperties' + Width = 66 + end + inherited cxGridViewDESCRIPCION: TcxGridDBColumn + Width = 85 + end + inherited cxGridViewCANTIDAD: TcxGridDBColumn + Width = 48 + end + inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + Width = 48 + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Width = 25 + end + inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn + Width = 49 + end + end + end + inherited TBXDock1: TTBXDock + ExplicitTop = 21 + ExplicitWidth = 680 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 451 + object TBXItem12: TTBXItem [0] + Action = actAnadirArticulos + DisplayMode = nbdmImageAndText + end + end + end + inherited ActionListContenido: TActionList + object actAnadirArticulos: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir art'#237'culos' + ImageIndex = 12 + OnExecute = actAnadirArticulosExecute + 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 +end diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas new file mode 100644 index 00000000..0875bd73 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas @@ -0,0 +1,118 @@ +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; + +type + IViewDetallesArticulos = interface(IViewDetallesDTO) + ['{D2F72E72-9CEA-4E43-AA18-625F7561E627}'] + end; + + TfrViewDetallesArticulos = class(TfrViewDetallesDTO, IViewDetallesArticulos) + cxGridViewID_ARTICULO: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + actAnadirArticulos: TAction; + TBXItem12: TTBXItem; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actAnadirArticulosExecute(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); + protected + procedure AnadirArticulosInterno; virtual; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; virtual; + end; + +implementation +{$R *.dfm} + +uses uViewDetallesBase; + +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; +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.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 catálogo'; + 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 catálogo'; + Error := True; + end; +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/Banca electronica/Controller/BancaElectronica_controller.bdsproj b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.bdsproj new file mode 100644 index 00000000..7e57ead3 --- /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 00000000..fd92d182 --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk @@ -0,0 +1,63 @@ +package BancaElectronica_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + DataAbstract_D10, + Base, + GUIBase, + Usuarios, + Empresas_model, + Empresas_controller, + Contactos_model, + Contactos_controller, + RemesasCliente_model, + RemesasCliente_controller; + +contains + uBancaElectronicaController in 'uBancaElectronicaController.pas', + CVBNorma19CSB in '..\Utiles\CVBNorma19CSB.pas', + CVBNorma34CSB in '..\Utiles\CVBNorma34CSB.pas', + CVBNorma1958CSB in '..\Utiles\CVBNorma1958CSB.pas', + CVBUtils in '..\Utiles\CVBUtils.pas', + uIEditorExportacionNorma19 in 'View\uIEditorExportacionNorma19.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..dfb4c8a9 --- /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 00000000..528877fa --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas @@ -0,0 +1,216 @@ +{ +=============================================================================== + 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 uBancaElectronicaController; + +interface + +uses + Classes, SysUtils, uDADataTable; + +type + IBancaElectronicaController = interface + ['{9E37DF46-D02C-47C4-BCBE-414FB97A7751}'] + procedure GenerarFicheroNorma19 (const IDRemesa : Integer); + end; + + TBancaElectronicaController = class(TInterfacedObject, 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 generación del fichero + //FecVcto := ARemesa.FECHA_REMESA; // <= sólo 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:= <= Sólo 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; + + 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; + ShowHourglassCursor; + try + CreateEditor('EditorExportacionNorma19', IEditorExportacionNorma19, AEditor); + with AEditor do + begin + CodigoEntidad := Entidad; + CodigoAgencia := Oficina; + FechaCargo := AFechaCargo; + Fichero := AFileName; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + begin + Entidad := AEditor.CodigoEntidad; + Oficina := AEditor.CodigoAgencia; + AFechaCargo := AEditor.FechaCargo; + AFileName := AEditor.Fichero; + Result := True; + end; + AEditor.Release; + finally + AEditor := NIL; + 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 00000000..50a6ba0f --- /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 00000000..5afe6e12 --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dpk @@ -0,0 +1,51 @@ +package BancaElectronica_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, + dbrtl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base, + Usuarios, + BancaElectronica_model; + +contains + uDataModuleBancaElectronica in 'uDataModuleBancaElectronica.pas' {DataModuleBancaElectronica: TDAClientDataModule}; + +end. diff --git a/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm new file mode 100644 index 00000000..b31f2aa2 --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm @@ -0,0 +1,77 @@ +object DataModuleBancaElectronica: TDataModuleBancaElectronica + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvBancaElectronica' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + 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 00000000..54cec18c --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.pas @@ -0,0 +1,175 @@ +{ +=============================================================================== + 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 uDataModuleBancaElectronica; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleBancaElectronica, uBizBancaElectronica; + +type + TDataModuleBancaElectronica = class(TDAClientDataModule, IDataModuleBancaElectronica) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + + // Descomentar si tiene detalles + // function _GetDetalles: IBizDetalles; + public + function GetNextID(const DataSetName : String) : Integer; + function GetItems: IBizIBizBanca; + function GetItem(const ID : Integer) : IBizIBizBanca; + function NewItem : IBizIBizBanca; + + // Descomentar si tiene informe + // function GetReport(const AIBizBancaID: Integer): Binary; + + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schBancaElectronicaClient_Intf; + +{ TDataModuleBancaElectronica } + + +// Descomentar si tiene informe +// function TDataModuleBancaElectronica.GetReport(const AIBizBancaID: Integer): Binary; +// begin +// Result := (RORemoteService as IsrvBancaElectronica).GenerateReport(AIBizBancaID) +// end; + +procedure TDataModuleBancaElectronica.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleBancaElectronica.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_BancaElectronica then + Result := 'GEN_BANCA_ID' +end; + +function TDataModuleBancaElectronica.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvBancaElectronica).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleBancaElectronica._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + + +// Descomentar si tiene detalles +// function TDataModuleBancaElectronica._GetDetalles: IBizIBizBancaDetalles; +// var +// ADetalles : TDACDSDataTable; +// begin +// ShowHourglassCursor; +// try +// ADetalles := _CloneDataTable(tbl_BancaElectronicaDetalles); +// with ADetalles do +// begin +// BusinessRulesID := BIZ_CLIENT_IBizBancaDETALLES; +// DetailOptions := DetailOptions - +// [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; +// end; +// Result := (ADetalles as IBizIBizBancaDetalles); +// finally +// HideHourglassCursor; +// end; +// end; + + +function TDataModuleBancaElectronica.GetItems: IBizIBizBanca; +var + AIBizBanca : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AIBizBanca := _CloneDataTable(tbl_BancaElectronica); + AIBizBanca.BusinessRulesID := BIZ_CLIENT_IBizBanca; + + // Descomentar si tiene detalles + // with TBizIBizBanca(AIBizBanca.BusinessEventsObj) do + // Detalles := _GetDetalles; + + 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; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('BANCA.' + fld_BancaElectronicaID + ' = ' + IntToStr(ID)); + CloseBraket; + 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 00000000..78d2f292 --- /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 00000000..36ebabf7 --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk @@ -0,0 +1,43 @@ +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 + rtl, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + DataAbstract_D10; + +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/Data/uIDataModuleBancaElectronica.pas b/Source/Modulos/Banca electronica/Model/Data/uIDataModuleBancaElectronica.pas new file mode 100644 index 00000000..dcd598dc --- /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 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 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 00000000..90231247 --- /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 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 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 00000000..47bdad1f --- /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 00000000..3d352a85 --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk @@ -0,0 +1,41 @@ +package BancaElectronica_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + BancaElectronica_controller, + BancaElectronica_view; + +contains + uPluginBancaElectronica in 'uPluginBancaElectronica.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..b0d917cb --- /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 00000000..0ae590b2 --- /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 00000000..429722a9 --- /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 más por el /0 + + _LL_: integer; // Longitud Línea. 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 físicamente hace la presentación del soporte magnético + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona física o jurídica } + + + 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 física o jurídica} + // 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 creación 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 +*) + + // Código 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 dígitos 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 dígitos 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 dígitos 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 dígitos 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 línea') + else + raise Exception.Create('Error en la generación 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 + + 'Código 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 00000000..79b7f8e5 --- /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 más 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 también la norma 58 + Norma = 19 = recibos al cobro + norma = 58 = recibos al descuento + *) + _NORMA_: integer; + + + NrError: integer; + CRLF: string; + { El PRESENTADOR (el que físicamente hace la presentación del soporte magnético + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona física o jurídica } + + + 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 física o jurídica} + // 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); +*) + + // Código 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 dígitos 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 dígitos 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 dígitos 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 dígitos 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 generación 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 + + 'Código 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 00000000..ef5d73c4 --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas @@ -0,0 +1,780 @@ +{------------------------------------------------------------------ + * + * Proyecto : + * Unit : CVBNorma34CSB + * Propósito: Solucionar múltiples 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 física o jurídica} + + // 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 línea de arriba sustituye a todo lo que hay en comentarios. Porque de momento + // se vá a hacer un sólo vencimiento para todos los pagos. El día que se quiera enviar + // distintos vencimientos, habrá que quitar esta línea, des'comentar' lo de arriba y + // cambiar en Remesas para que haga bucles según 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 generación 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 00000000..c9c63cd6 --- /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 00000000..f2b87e84 --- /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 carácter no válido 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 00000000..322c0ccd --- /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 00000000..3730cfec --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk @@ -0,0 +1,45 @@ +package BancaElectronica_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + Base, + GUIBase, + BancaElectronica_controller, + JvGlobusD10R, + JvDlgsD10R; + +contains + uBancaElectronicaViewRegister in 'uBancaElectronicaViewRegister.pas', + uEditorExportacionNorma19 in 'uEditorExportacionNorma19.pas' {fEditorExportacionNorma19}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..2923de81 --- /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 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 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 00000000..1cd2b439 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm @@ -0,0 +1,263 @@ +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 JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 389 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Volcado de remesas a disco') + Comments.Strings = ( + 'Introduzca los siguientes datos para realizar el volcado') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = 76 + 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 00000000..bd720887 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.pas @@ -0,0 +1,195 @@ +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, JvgWizardHeader, + 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; + JvgWizardHeader1: TJvgWizardHeader; + 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/Comisiones/Controller/Comisiones_controller.bdsproj b/Source/Modulos/Comisiones/Controller/Comisiones_controller.bdsproj new file mode 100644 index 00000000..c38cf2a7 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/Comisiones_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Comisiones_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/Comisiones/Controller/Comisiones_controller.dpk b/Source/Modulos/Comisiones/Controller/Comisiones_controller.dpk new file mode 100644 index 00000000..f70241fb --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/Comisiones_controller.dpk @@ -0,0 +1,83 @@ +package Comisiones_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + ControllerBase, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + Comisiones_data, + Comisiones_model, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvAppFrmD10R, + JvSystemD10R, + PngComponentsD10, + PNG_D10, + cxIntlPrintSys3D10, + tbx_d10, + tb2k_d10, + JvStdCtrlsD10R, + JvPageCompsD10R, + FacturasCliente_controller, + FacturasCliente_model; + +contains + uComisionesController in 'uComisionesController.pas', + uIEditorComisiones in 'View\uIEditorComisiones.pas', + uIEditorComision in 'View\uIEditorComision.pas', + uIEditorComisionesPreview in 'View\uIEditorComisionesPreview.pas', + uComisionesReportController in 'uComisionesReportController.pas'; + +end. diff --git a/Source/Modulos/Comisiones/Controller/Comisiones_controller.rc b/Source/Modulos/Comisiones/Controller/Comisiones_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Controller/Comisiones_controller.res b/Source/Modulos/Comisiones/Controller/Comisiones_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Comisiones/Controller/Comisiones_controller.res differ diff --git a/Source/Modulos/Comisiones/Controller/View/uIEditorComision.pas b/Source/Modulos/Comisiones/Controller/View/uIEditorComision.pas new file mode 100644 index 00000000..1bebf820 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/View/uIEditorComision.pas @@ -0,0 +1,22 @@ +unit uIEditorComision; + +interface + +uses + uEditorDBItem, uBizComisiones, uComisionesController; + +type + IEditorComision = interface(IEditorDBItem) + ['{21D6E58B-2BBE-4EF4-BF81-3BF896BBD930}'] + function GetController : IComisionesController; + procedure SetController (const Value : IComisionesController); + property Controller : IComisionesController read GetController write SetController; + + function GetComision: IBizComisiones; + procedure SetComision(const Value: IBizComisiones); + property Comision: IBizComisiones read GetComision write SetComision; + end; + +implementation + +end. diff --git a/Source/Modulos/Comisiones/Controller/View/uIEditorComisiones.pas b/Source/Modulos/Comisiones/Controller/View/uIEditorComisiones.pas new file mode 100644 index 00000000..af2e298d --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/View/uIEditorComisiones.pas @@ -0,0 +1,23 @@ +unit uIEditorComisiones; + +interface + +uses + uEditorGridBase, uBizComisiones, uComisionesController; + +type + IEditorComisiones = interface(IEditorGridBase) + ['{C29A6F57-3673-4BB5-A497-EBCCBE4A6088}'] + function GetComisiones: IBizComisiones; + procedure SetComisiones(const Value: IBizComisiones); + property Comisiones: IBizComisiones read GetComisiones write SetComisiones; + + function GetController : IComisionesController; + procedure SetController (const Value : IComisionesController); + property Controller : IComisionesController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Comisiones/Controller/View/uIEditorComisionesPreview.pas b/Source/Modulos/Comisiones/Controller/View/uIEditorComisionesPreview.pas new file mode 100644 index 00000000..42f0c8d9 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/View/uIEditorComisionesPreview.pas @@ -0,0 +1,19 @@ +unit uIEditorComisionesPreview; + +interface + +uses + uEditorPreview, uIDataModuleComisionesReport; + +type + IEditorComisionesPreview = interface(IEditorPreview) + ['{A0E45AC5-503B-4FB6-8BCA-714B6DE2358A}'] + function GetDataModule : IDataModuleComisionesReport; + procedure SetDataModule (const Value : IDataModuleComisionesReport); + property DataModule : IDataModuleComisionesReport read GetDataModule write SetDataModule; + end; + + +implementation + +end. diff --git a/Source/Modulos/Comisiones/Controller/uComisionesController.pas b/Source/Modulos/Comisiones/Controller/uComisionesController.pas new file mode 100644 index 00000000..9b6b7960 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/uComisionesController.pas @@ -0,0 +1,492 @@ +unit uComisionesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleComisiones, uBizComisiones, uFacturasClienteController, uBizFacturasCliente; + +type + IComisionesController = interface(IObservador) + ['{0C281A5D-9DF9-46BD-99CB-1150A536EFA1}'] + function BuscarTodos: IBizComisiones; + procedure VerTodos(AComision: IBizComisiones); + procedure Ver(AComision: IBizComisiones); + procedure Anadir(AComision : IBizComisiones); + function Eliminar(AComision : IBizComisiones): Boolean; + function Guardar(AComision : IBizComisiones): Boolean; + procedure DescartarCambios(AComision : IBizComisiones); + procedure Preview(AComision : IBizComisiones); + procedure Print(AComision : IBizComisiones); + + function ElegirFacturasComision(AComision : IBizComisiones): Boolean; + procedure EliminarFactura(AComision : IBizComisiones); + procedure AsignarImporteTotal(AComision : IBizComisiones; Const ImporteTotal: Variant); + end; + + TComisionesController = class(TObservador, IComisionesController) + private + function BuscarFacturasDesglosadas(AFacturas: IBizFacturaCliente): IBizFacturasComision; +// procedure QuitarExistentes(AFacturas: IBizFacturaCliente; AFacturasComision: IBizFacturasComision); + + protected + FDataModule : IDataModuleComisiones; + FFacturasClienteController: IFacturasClienteController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarComision(AComision: IBizComisiones): Boolean; + procedure AsignarID(AComision: IBizComisiones; const IDNuevo: Integer); + procedure AsignarIDDetalles(AFacturasComision: IBizFacturasComision; IDComision: Integer; AEsNuevo: Boolean); + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + public + constructor Create; virtual; + destructor Destroy; override; + + function Eliminar(AComision : IBizComisiones): Boolean; + function Guardar(AComision : IBizComisiones): Boolean; + procedure DescartarCambios(AComision : IBizComisiones); + procedure Anadir(AComision : IBizComisiones); + function BuscarTodos: IBizComisiones; + procedure VerTodos(AComision: IBizComisiones); + procedure Ver(AComision: IBizComisiones); + procedure Preview(AComision : IBizComisiones); + procedure Print(AComision : IBizComisiones); + function ElegirFacturasComision(AComision : IBizComisiones): Boolean; + procedure EliminarFactura(AComision : IBizComisiones); + procedure AsignarImporteTotal(AComision : IBizComisiones; Const ImporteTotal: Variant); + end; + +implementation + +uses + Variants, Dialogs, cxControls, DB, uEditorRegistryUtils, schComisionesClient_Intf, + uIEditorComisiones, uDataModuleComisiones, uDataModuleUsuarios, + uDAInterfaces, uDataTableUtils, uIEditorComision, uComisionesReportController, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TComisionesController } + +procedure TComisionesController.Anadir(AComision: IBizComisiones); +begin + AComision.Insert; +end; + +procedure TComisionesController.AsignarDataModule; +begin + FDataModule := TDataModuleComisiones.Create(Nil); +end; + +procedure TComisionesController.AsignarID(AComision: IBizComisiones; const IDNuevo: Integer); +begin + if not Assigned(AComision) then + raise Exception.Create ('Comision no asignado'); + + AsignarIDDetalles(AComision.Facturas, IDNuevo, AComision.EsNuevo); + + if AComision.EsNuevo then + begin + AComision.Edit; + AComision.ID := IDNuevo; + AComision.Post; + end; +end; + +procedure TComisionesController.AsignarIDDetalles(AFacturasComision: IBizFacturasComision; IDComision: Integer; AEsNuevo: Boolean); +begin + with AFacturasComision do + begin + DataTable.DisableControls; + try + begin + if not DataTable.Active then + DataTable.Active := True; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + Edit; + ID_COMISION_LIQUIDADA := IdComision; + Post + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if ID_COMISION_LIQUIDADA < 0 then + begin + Edit; + ID_COMISION_LIQUIDADA := IdComision; + Post + end; + DataTable.Next + end; + end; + end; + finally + DataTable.EnableControls; + end; + end; +end; + +procedure TComisionesController.AsignarImporteTotal(AComision: IBizComisiones; const ImporteTotal: Variant); +begin + if Assigned(AComision) then + begin + if (not VarIsNull(ImporteTotal)) + and (AComision.DataTable.FieldByName(fld_ComisionesIMPORTE_TOTAL).IsNull or (AComision.IMPORTE_TOTAL <> ImporteTotal)) then + begin + AComision.Edit; + AComision.IMPORTE_TOTAL := ImporteTotal; + AComision.Post; + end; + end; +end; + +function TComisionesController.BuscarFacturasDesglosadas(AFacturas: IBizFacturaCliente): IBizFacturasComision; +var + Cadena: String; +begin + if Assigned(AFacturas) then + begin + with AFacturas.DataTable do + begin + if not Active then Active := True; + First; + Cadena := ''; + While not Eof do + begin + if (Length(Cadena) > 0) then + Cadena := Cadena + ', '; + Cadena := Cadena + IntToStr(AFacturas.ID); + Next; + end; + end; + end; + +// Showmessage(Cadena); + Result := FDataModule.GetFacturasDesglosadas; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('ID_FACTURA in (' + Cadena + ')'); + CloseBraket; + end; +end; + +function TComisionesController.BuscarTodos: IBizComisiones; +begin + Result := FDataModule.GetItems; +end; + +constructor TComisionesController.Create; +begin + AsignarDataModule; + FFacturasClienteController := TFacturasClienteController.Create; +end; + +function TComisionesController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TComisionesController.DescartarCambios(AComision: IBizComisiones); +begin + if not Assigned(AComision) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AComision.State in dsEditModes) then + AComision.Cancel; + + AComision.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TComisionesController.Destroy; +begin + FFacturasClienteController := Nil; + FDataModule := Nil; + inherited; +end; + +function TComisionesController.ValidarComision(AComision: IBizComisiones): Boolean; +var + AFechaPagado : TDateTime; +begin + Result := False; + + if not Assigned(AComision) then + raise Exception.Create ('Comision no asignada'); + + if (AComision.DataTable.State in dsEditModes) then + AComision.DataTable.Post; + + if AComision.DataTable.FieldByName(fld_ComisionesID_AGENTE).IsNull then + raise Exception.Create('Debe indicar el agente de esta liquidación de comisiones.'); + + if AComision.DataTable.FieldByName(fld_ComisionesFECHA).IsNull then + raise Exception.Create('Debe indicar la fecha de esta liquidación de comisiones.'); + + if AComision.DataTable.FieldByName(fld_ComisionesDESCRIPCION).IsNull then + raise Exception.Create('Debe indicar una descripción para la liquidación de comisión.'); + + // Asegurarse de valores en campos "automáticos" + AComision.Edit; + try + AComision.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AComision.Post; + end; +end; + +procedure TComisionesController.Ver(AComision: IBizComisiones); +var + AEditor : IEditorComision; +begin + AEditor := NIL; + ShowHourglassCursor; + try +// RecuperarObjetos(ARemesaCliente); + + CreateEditor('EditorComision', IEditorComision, AEditor); + with (AEditor as IEditorComision) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Comision := AComision; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TComisionesController.VerTodos(AComision: IBizComisiones); +var + AEditor : IEditorComisiones; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorComisiones', IEditorComisiones, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Comisiones := AComision; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +function TComisionesController.ElegirFacturasComision(AComision: IBizComisiones): Boolean; +var + AFacturasAgente : IBizFacturaCliente; + AFacturasSeleccionadas : IBizFacturaCliente; + AFacturasDesglosadas: IBizFacturasComision; + Cadena: String; +begin + Result := False; + + if (AComision.ID_AGENTE <> 0) then + begin + + if Assigned(AComision.Facturas) then + begin + with AComision.Facturas.DataTable do + begin + if not Active then Active := True; + First; + Cadena := ''; + While not Eof do + begin + if (Length(Cadena) > 0) then + Cadena := Cadena + ', '; + Cadena := Cadena + IntToStr(AComision.Facturas.ID_FACTURA); + Next; + end; + end; + end; + + AFacturasAgente := FFacturasClienteController.BuscarTodasPendientesComision(AComision.ID_AGENTE, AComision.ID, Cadena); + AFacturasSeleccionadas := (FFacturasClienteController.ElegirFacturas(AFacturasAgente, 'Elija uno o más facturas para incluirlos en esta liquidación de comisiones', True) as IBizFacturaCliente); + + if Assigned(AFacturasSeleccionadas) then + begin + ShowHourglassCursor; + try + AFacturasDesglosadas := BuscarFacturasDesglosadas(AFacturasSeleccionadas); + + //Copia las facturas desglosadas de las facturas seleccionadas + DuplicarRegistros(AFacturasDesglosadas.DataTable, AComision.Facturas.DataTable, mdrTodos, True, True, False); + + Result := True; + finally + HideHourglassCursor; + end; + end; + + AFacturasAgente := Nil; + AFacturasSeleccionadas := Nil; + AFacturasDesglosadas := Nil; + end + else + Showmessage('Debe elegir primero el agente asociado a la liquidación'); +end; + +function TComisionesController.Eliminar(AComision: IBizComisiones): Boolean; +begin + Result := False; + + if not Assigned(AComision) then + raise Exception.Create ('Comision no asignada'); + + ShowHourglassCursor; + try + if (AComision.State in dsEditModes) then + AComision.Cancel; + + AComision.Delete; + AComision.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TComisionesController.EliminarFactura(AComision: IBizComisiones); +var + IdFactura: Variant; +begin + IdFactura := AComision.Facturas.ID_FACTURA; + + AComision.Facturas.First; + while AComision.Facturas.DataTable.Locate('ID_FACTURA', IdFactura,[]) do + begin + AComision.Facturas.Delete; + AComision.Facturas.First; + end; +end; + +procedure TComisionesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TComisionesController.Guardar(AComision: IBizComisiones): Boolean; +var + NuevoID: Integer; +begin + Result := False; + + if not Assigned(AComision) then + raise Exception.Create ('Almacen no asignada'); + + if ValidarComision(AComision) then + begin + ShowHourglassCursor; + try + if (AComision.EsNuevo) then + NuevoID := FDataModule.GetNextID(AComision.DataTable.LogicalName) + else + NuevoID := AComision.ID; + + AsignarID(AComision, NuevoID); + AComision.DataTable.ApplyUpdates; + //Si todo ha ido bien, asignamos la comision a las facturas asociadas + //Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros +// RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, NuevoID); +// ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarán todos los cambios acumulados sobre los recibos asociados (EliminarReciboCliente/ ElegirRecibosCliente) + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; +procedure TComisionesController.Preview(AComision: IBizComisiones); +var + AReportController : IComisionesReportController; +begin + AReportController := TComisionesReportController.Create; + try + if Assigned(AComision) then + AReportController.Preview(AComision.ID) + else + AReportController.Preview(Null) + finally + AReportController := NIL; + end; +end; + +procedure TComisionesController.Print(AComision: IBizComisiones); +var + AReportController : IComisionesReportController; +begin + AReportController := TComisionesReportController.Create; + try + if Assigned(AComision) then + AReportController.Preview(AComision.ID) + else + AReportController.Preview(Null); + finally + AReportController := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas b/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas new file mode 100644 index 00000000..5487bc26 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas @@ -0,0 +1,106 @@ +unit uComisionesReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleComisionesReport, +// uClientesController, uDetallesFacturaClienteController, + uBizComisiones; + +type + IComisionesReportController = interface + ['{7ABB74C2-050C-4737-BC4C-C5F20883CED8}'] + procedure Preview(const AComisionID : Variant); + procedure Print(const AComisionID : Variant); + end; + + TComisionesReportController = class(TInterfacedObject, IComisionesReportController) + private + FDataModule : IDataModuleComisionesReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AComisionID : Variant); + procedure Print(const AComisionID : Variant); + end; + + +implementation + +uses + Variants, uROTypes, uEditorRegistryUtils, uIEditorComisionesPreview, + uEditorPreview, uDataModuleComisiones, uEditorBase, cxControls; + +{ TComisionesReportController } + +constructor TComisionesReportController.Create; +begin + FDataModule := TDataModuleComisiones.Create(Nil); +end; + +function TComisionesReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TComisionesReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TComisionesReportController.Preview(const AComisionID : Variant); +var + AStream: Binary; + AEditor : IEditorComisionesPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AComisionID, '', '', Null); + try + CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); + AEditor.DataModule := FDataModule; + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TComisionesReportController.Print(const AComisionID : Variant); +var + AStream: Binary; + AEditor : IEditorComisionesPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AComisionID, '', '', Null); + try + CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); + AEditor.DataModule := FDataModule; + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +end; + +end. diff --git a/Source/Modulos/Comisiones/Data/Comisiones_data.bdsproj b/Source/Modulos/Comisiones/Data/Comisiones_data.bdsproj new file mode 100644 index 00000000..6017df67 --- /dev/null +++ b/Source/Modulos/Comisiones/Data/Comisiones_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Comisiones_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/Comisiones/Data/Comisiones_data.dpk b/Source/Modulos/Comisiones/Data/Comisiones_data.dpk new file mode 100644 index 00000000..cb094888 --- /dev/null +++ b/Source/Modulos/Comisiones/Data/Comisiones_data.dpk @@ -0,0 +1,42 @@ +package Comisiones_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + Base, + Comisiones_model; + +contains + uDataModuleComisiones in 'uDataModuleComisiones.pas' {DataModuleComisiones}; + +end. diff --git a/Source/Modulos/Comisiones/Data/Comisiones_data.rc b/Source/Modulos/Comisiones/Data/Comisiones_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Data/Comisiones_data.res b/Source/Modulos/Comisiones/Data/Comisiones_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Comisiones/Data/Comisiones_data.res differ diff --git a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm new file mode 100644 index 00000000..1d8fa2c7 --- /dev/null +++ b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm @@ -0,0 +1,866 @@ +object DataModuleComisiones: TDataModuleComisiones + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvComisiones' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_Comisiones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Comisiones_REFERENCIA' + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Comisiones' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Comisiones' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Comisiones' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Comisiones' + IndexDefs = <> + Left = 216 + Top = 144 + end + object ds_Comisiones: TDADataSource + DataTable = tbl_Comisiones + Left = 216 + Top = 80 + end + object tbl_Facturas_Comision: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_ID_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_IMPORTE_COMISIONABLE' + Alignment = taRightJustify + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISIONABLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_IMPORTE_COMISION' + Alignment = taRightJustify + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_COMISION' + BlobType = dabtUnknown + Value = 18 + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_COMISION=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Facturas_Comision' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Facturas_Comision' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Facturas_Comision' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Comisiones + MasterFields = 'ID' + DetailFields = 'ID_COMISION_LIQUIDADA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Facturas_Comision' + IndexDefs = <> + Left = 368 + Top = 144 + end + object ds_Facturas_Comision: TDADataSource + DataTable = tbl_Facturas_Comision + Left = 368 + Top = 80 + end + object tbl_V_Detalles_Facturas_Comision: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'V_Detalles_Facturas_Comision_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_ID_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Facturas_Comision_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'Facturas_Comision_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Comisiones_Detalles_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + Alignment = taRightJustify + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + Alignment = taRightJustify + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'V_Detalles_Facturas_Comision' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'V_Detalles_Facturas_Comision' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'V_Detalles_Facturas_Comision' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'V_Detalles_Facturas_Comision' + IndexDefs = <> + Left = 312 + Top = 312 + end + object ds_V_Detalles_Facturas_Comision: TDADataSource + DataTable = tbl_V_Detalles_Facturas_Comision + Left = 312 + Top = 256 + end +end diff --git a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas new file mode 100644 index 00000000..1caa675d --- /dev/null +++ b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas @@ -0,0 +1,168 @@ +unit uDataModuleComisiones; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uIDataModuleComisiones, uBizComisiones, + uIDataModuleComisionesReport; + +type + TDataModuleComisiones = class(TDAClientDataModule, IDataModuleComisiones, IDataModuleComisionesReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_Comisiones: TDACDSDataTable; + ds_Comisiones: TDADataSource; + tbl_Facturas_Comision: TDACDSDataTable; + ds_Facturas_Comision: TDADataSource; + tbl_V_Detalles_Facturas_Comision: TDACDSDataTable; + ds_V_Detalles_Facturas_Comision: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetFacturas : IBizFacturasComision; + function darNombreGenerador(DataSetName: String): String; virtual; + public + function GetItems : IBizComisiones; overload; + function GetFacturasDesglosadas : IBizFacturasComision; + function GetItem(const ID : Integer) : IBizComisiones; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizComisiones; + + // Report + function GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + end; + +implementation +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schComisionesClient_Intf; + +{ TdmComisiones } + +procedure TDataModuleComisiones.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleComisiones.darNombreGenerador(DataSetName: String): String; +begin + if DataSetName = nme_Comisiones then + Result := 'GEN_COMISIONES_LIQUID_ID'; +end; + +function TDataModuleComisiones.GetItems: IBizComisiones; +var + AComisiones : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AComisiones := _CloneDataTable(tbl_Comisiones); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AComisiones.FieldByName(fld_ComisionesREFERENCIA).ServerAutoRefresh := TRUE; + + AComisiones.BusinessRulesID := BIZ_CLIENT_COMISIONES; + + with TBizComisiones(AComisiones.BusinessEventsObj) do + begin + Facturas := _GetFacturas; + end; + + Result := (AComisiones as IBizComisiones); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleComisiones._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleComisiones._GetFacturas: IBizFacturasComision; +var + AFacturas : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AFacturas := _CloneDataTable(tbl_Facturas_Comision); + with AFacturas do + begin + BusinessRulesID := BIZ_CLIENT_FACTURAS_COMISION; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AFacturas as IBizFacturasComision); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleComisiones.GetFacturasDesglosadas: IBizFacturasComision; +var + AFacturasDesglosadas : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AFacturasDesglosadas := _CloneDataTable(tbl_V_Detalles_Facturas_Comision); + AFacturasDesglosadas.BusinessRulesID := BIZ_CLIENT_FACTURAS_COMISION; + Result := (AFacturasDesglosadas as IBizFacturasComision); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleComisiones.GetItem(const ID: Integer): IBizComisiones; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ComisionesID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + + +function TDataModuleComisiones.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvComisiones).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleComisiones.GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +begin + Result := (RORemoteService as IsrvComisiones).GenerateReport(AComisionID, FechaIni, FechaFin, AAgenteID); +end; + +function TDataModuleComisiones.NewItem: IBizComisiones; +begin + Result := GetItem(ID_NULO); +end; + +end. diff --git a/Source/Modulos/Comisiones/Model/Comisiones_model.bdsproj b/Source/Modulos/Comisiones/Model/Comisiones_model.bdsproj new file mode 100644 index 00000000..56e45ec9 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/Comisiones_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Comisiones_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/Comisiones/Model/Comisiones_model.dpk b/Source/Modulos/Comisiones/Model/Comisiones_model.dpk new file mode 100644 index 00000000..9cd8f986 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/Comisiones_model.dpk @@ -0,0 +1,52 @@ +package Comisiones_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + DataAbstract_D10, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Usuarios; + +contains + uBizComisiones in 'uBizComisiones.pas', + uIDataModuleComisiones in 'Data\uIDataModuleComisiones.pas', + schComisionesClient_Intf in 'schComisionesClient_Intf.pas', + schComisionesServer_Intf in 'schComisionesServer_Intf.pas', + uIDataModuleComisionesReport in 'Data\uIDataModuleComisionesReport.pas'; + +end. diff --git a/Source/Modulos/Comisiones/Model/Comisiones_model.rc b/Source/Modulos/Comisiones/Model/Comisiones_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Model/Comisiones_model.res b/Source/Modulos/Comisiones/Model/Comisiones_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Comisiones/Model/Comisiones_model.res differ diff --git a/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisiones.pas b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisiones.pas new file mode 100644 index 00000000..ef146176 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisiones.pas @@ -0,0 +1,20 @@ +unit uIDataModuleComisiones; + +interface + +uses + uBizComisiones; + +type + IDataModuleComisiones = interface + ['{3E1CCFC9-B804-4D80-85BD-F9B9D7908E0D}'] + function GetItems: IBizComisiones; + function GetItem(const ID : Integer) : IBizComisiones; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizComisiones; + function GetFacturasDesglosadas : IBizFacturasComision; + end; + +implementation + +end. diff --git a/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas new file mode 100644 index 00000000..ab642766 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleComisionesReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleComisionesReport = interface + ['{F498AC70-AA38-4C06-B301-85A4AC0B210B}'] + function GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas b/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas new file mode 100644 index 00000000..b944fe1f --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas @@ -0,0 +1,1114 @@ +unit schComisionesClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_Facturas_Comision = '{EA4A0704-B8AD-4632-9FF0-D51D52FF60B6}'; + RID_DarReferencia = '{579724B6-8389-482A-B4A4-EEEA864CAEA0}'; + RID_Comisiones = '{1D36BBB6-821F-4450-8855-482C4E797FFE}'; + RID_Comisiones_Refresh = '{FEB4830C-01B3-4B40-BA7A-CE3D8AF44596}'; + RID_V_Detalles_Facturas_Comision = '{69E506D8-A8D4-4D90-8D3F-61BBF29BBD60}'; + + { Data table names } + nme_Facturas_Comision = 'Facturas_Comision'; + nme_DarReferencia = 'DarReferencia'; + nme_Comisiones = 'Comisiones'; + nme_Comisiones_Refresh = 'Comisiones_Refresh'; + nme_V_Detalles_Facturas_Comision = 'V_Detalles_Facturas_Comision'; + + { Facturas_Comision fields } + fld_Facturas_ComisionID_EMPRESA = 'ID_EMPRESA'; + fld_Facturas_ComisionID_AGENTE = 'ID_AGENTE'; + fld_Facturas_ComisionAGENTE = 'AGENTE'; + fld_Facturas_ComisionID_FACTURA = 'ID_FACTURA'; + fld_Facturas_ComisionID_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_Facturas_ComisionFECHA = 'FECHA'; + fld_Facturas_ComisionREFERENCIA = 'REFERENCIA'; + fld_Facturas_ComisionSITUACION = 'SITUACION'; + fld_Facturas_ComisionID_CLIENTE = 'ID_CLIENTE'; + fld_Facturas_ComisionCLIENTE = 'CLIENTE'; + fld_Facturas_ComisionID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_Facturas_ComisionPROVEEDOR = 'PROVEEDOR'; + fld_Facturas_ComisionCOMISION = 'COMISION'; + fld_Facturas_ComisionIMPORTE_COMISIONABLE = 'IMPORTE_COMISIONABLE'; + fld_Facturas_ComisionIMPORTE_COMISION = 'IMPORTE_COMISION'; + + { Facturas_Comision field indexes } + idx_Facturas_ComisionID_EMPRESA = 0; + idx_Facturas_ComisionID_AGENTE = 1; + idx_Facturas_ComisionAGENTE = 2; + idx_Facturas_ComisionID_FACTURA = 3; + idx_Facturas_ComisionID_COMISION_LIQUIDADA = 4; + idx_Facturas_ComisionFECHA = 5; + idx_Facturas_ComisionREFERENCIA = 6; + idx_Facturas_ComisionSITUACION = 7; + idx_Facturas_ComisionID_CLIENTE = 8; + idx_Facturas_ComisionCLIENTE = 9; + idx_Facturas_ComisionID_PROVEEDOR = 10; + idx_Facturas_ComisionPROVEEDOR = 11; + idx_Facturas_ComisionCOMISION = 12; + idx_Facturas_ComisionIMPORTE_COMISIONABLE = 13; + idx_Facturas_ComisionIMPORTE_COMISION = 14; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { Comisiones fields } + fld_ComisionesID = 'ID'; + fld_ComisionesID_EMPRESA = 'ID_EMPRESA'; + fld_ComisionesREFERENCIA = 'REFERENCIA'; + fld_ComisionesID_AGENTE = 'ID_AGENTE'; + fld_ComisionesDESCRIPCION = 'DESCRIPCION'; + fld_ComisionesFECHA = 'FECHA'; + fld_ComisionesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_ComisionesUSUARIO = 'USUARIO'; + fld_ComisionesNOMBRE = 'NOMBRE'; + + { Comisiones field indexes } + idx_ComisionesID = 0; + idx_ComisionesID_EMPRESA = 1; + idx_ComisionesREFERENCIA = 2; + idx_ComisionesID_AGENTE = 3; + idx_ComisionesDESCRIPCION = 4; + idx_ComisionesFECHA = 5; + idx_ComisionesIMPORTE_TOTAL = 6; + idx_ComisionesUSUARIO = 7; + idx_ComisionesNOMBRE = 8; + + { Comisiones_Refresh fields } + fld_Comisiones_RefreshID = 'ID'; + fld_Comisiones_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_Comisiones_RefreshREFERENCIA = 'REFERENCIA'; + fld_Comisiones_RefreshID_AGENTE = 'ID_AGENTE'; + fld_Comisiones_RefreshDESCRIPCION = 'DESCRIPCION'; + fld_Comisiones_RefreshFECHA = 'FECHA'; + fld_Comisiones_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_Comisiones_RefreshUSUARIO = 'USUARIO'; + fld_Comisiones_RefreshNOMBRE = 'NOMBRE'; + + { Comisiones_Refresh field indexes } + idx_Comisiones_RefreshID = 0; + idx_Comisiones_RefreshID_EMPRESA = 1; + idx_Comisiones_RefreshREFERENCIA = 2; + idx_Comisiones_RefreshID_AGENTE = 3; + idx_Comisiones_RefreshDESCRIPCION = 4; + idx_Comisiones_RefreshFECHA = 5; + idx_Comisiones_RefreshIMPORTE_TOTAL = 6; + idx_Comisiones_RefreshUSUARIO = 7; + idx_Comisiones_RefreshNOMBRE = 8; + + { V_Detalles_Facturas_Comision fields } + fld_V_Detalles_Facturas_ComisionID_EMPRESA = 'ID_EMPRESA'; + fld_V_Detalles_Facturas_ComisionID_AGENTE = 'ID_AGENTE'; + fld_V_Detalles_Facturas_ComisionAGENTE = 'AGENTE'; + fld_V_Detalles_Facturas_ComisionID_FACTURA = 'ID_FACTURA'; + fld_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_V_Detalles_Facturas_ComisionFECHA = 'FECHA'; + fld_V_Detalles_Facturas_ComisionREFERENCIA = 'REFERENCIA'; + fld_V_Detalles_Facturas_ComisionSITUACION = 'SITUACION'; + fld_V_Detalles_Facturas_ComisionID_CLIENTE = 'ID_CLIENTE'; + fld_V_Detalles_Facturas_ComisionCLIENTE = 'CLIENTE'; + fld_V_Detalles_Facturas_ComisionID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_V_Detalles_Facturas_ComisionPROVEEDOR = 'PROVEEDOR'; + fld_V_Detalles_Facturas_ComisionCOMISION = 'COMISION'; + fld_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE = 'IMPORTE_COMISIONABLE'; + fld_V_Detalles_Facturas_ComisionIMPORTE_COMISION = 'IMPORTE_COMISION'; + + { V_Detalles_Facturas_Comision field indexes } + idx_V_Detalles_Facturas_ComisionID_EMPRESA = 0; + idx_V_Detalles_Facturas_ComisionID_AGENTE = 1; + idx_V_Detalles_Facturas_ComisionAGENTE = 2; + idx_V_Detalles_Facturas_ComisionID_FACTURA = 3; + idx_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA = 4; + idx_V_Detalles_Facturas_ComisionFECHA = 5; + idx_V_Detalles_Facturas_ComisionREFERENCIA = 6; + idx_V_Detalles_Facturas_ComisionSITUACION = 7; + idx_V_Detalles_Facturas_ComisionID_CLIENTE = 8; + idx_V_Detalles_Facturas_ComisionCLIENTE = 9; + idx_V_Detalles_Facturas_ComisionID_PROVEEDOR = 10; + idx_V_Detalles_Facturas_ComisionPROVEEDOR = 11; + idx_V_Detalles_Facturas_ComisionCOMISION = 12; + idx_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE = 13; + idx_V_Detalles_Facturas_ComisionIMPORTE_COMISION = 14; + +type + { IFacturas_Comision } + IFacturas_Comision = interface(IDAStronglyTypedDataTable) + ['{3C7E800C-733C-4AD2-88B0-1FB0C30EEAB4}'] + { Property getters and setters } + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetAGENTEValue: String; + procedure SetAGENTEValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetCLIENTEValue: String; + procedure SetCLIENTEValue(const aValue: String); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetPROVEEDORValue: String; + procedure SetPROVEEDORValue(const aValue: String); + function GetCOMISIONValue: Float; + procedure SetCOMISIONValue(const aValue: Float); + function GetIMPORTE_COMISIONABLEValue: Currency; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); + function GetIMPORTE_COMISIONValue: Currency; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); + + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + end; + + { TFacturas_ComisionDataTableRules } + TFacturas_ComisionDataTableRules = class(TDADataTableRules, IFacturas_Comision) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Currency; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); virtual; + function GetIMPORTE_COMISIONValue: Currency; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); virtual; + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{6F6CF728-FD82-4921-95BA-666E4F70B3C2}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IComisiones } + IComisiones = interface(IDAStronglyTypedDataTable) + ['{72F0B3AD-C3B5-40E7-8135-300E67F02488}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetIMPORTE_TOTALValue: Float; + procedure SetIMPORTE_TOTALValue(const aValue: Float); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + end; + + { TComisionesDataTableRules } + TComisionesDataTableRules = class(TDADataTableRules, IComisiones) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IComisiones_Refresh } + IComisiones_Refresh = interface(IDAStronglyTypedDataTable) + ['{55229695-D8C9-42DD-AF4A-98A105CB3AB5}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetIMPORTE_TOTALValue: Float; + procedure SetIMPORTE_TOTALValue(const aValue: Float); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + end; + + { TComisiones_RefreshDataTableRules } + TComisiones_RefreshDataTableRules = class(TDADataTableRules, IComisiones_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IV_Detalles_Facturas_Comision } + IV_Detalles_Facturas_Comision = interface(IDAStronglyTypedDataTable) + ['{9B3F1419-AEA0-494C-A072-DD93052AC2E4}'] + { Property getters and setters } + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetAGENTEValue: String; + procedure SetAGENTEValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetCLIENTEValue: String; + procedure SetCLIENTEValue(const aValue: String); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetPROVEEDORValue: String; + procedure SetPROVEEDORValue(const aValue: String); + function GetCOMISIONValue: Float; + procedure SetCOMISIONValue(const aValue: Float); + function GetIMPORTE_COMISIONABLEValue: Currency; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); + function GetIMPORTE_COMISIONValue: Currency; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); + + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + end; + + { TV_Detalles_Facturas_ComisionDataTableRules } + TV_Detalles_Facturas_ComisionDataTableRules = class(TDADataTableRules, IV_Detalles_Facturas_Comision) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Currency; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); virtual; + function GetIMPORTE_COMISIONValue: Currency; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); virtual; + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TFacturas_ComisionDataTableRules } +constructor TFacturas_ComisionDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturas_ComisionDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturas_ComisionDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_EMPRESA].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_EMPRESA].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_AGENTE].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_AGENTE].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetAGENTEValue: String; +begin + result := DataTable.Fields[idx_Facturas_ComisionAGENTE].AsString; +end; + +procedure TFacturas_ComisionDataTableRules.SetAGENTEValue(const aValue: String); +begin + DataTable.Fields[idx_Facturas_ComisionAGENTE].AsString := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_FACTURA].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_FACTURA].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_COMISION_LIQUIDADA].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_COMISION_LIQUIDADA].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_Facturas_ComisionFECHA].AsDateTime; +end; + +procedure TFacturas_ComisionDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Facturas_ComisionFECHA].AsDateTime := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_Facturas_ComisionREFERENCIA].AsString; +end; + +procedure TFacturas_ComisionDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_Facturas_ComisionREFERENCIA].AsString := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_Facturas_ComisionSITUACION].AsString; +end; + +procedure TFacturas_ComisionDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_Facturas_ComisionSITUACION].AsString := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_CLIENTE].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_CLIENTE].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetCLIENTEValue: String; +begin + result := DataTable.Fields[idx_Facturas_ComisionCLIENTE].AsString; +end; + +procedure TFacturas_ComisionDataTableRules.SetCLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_Facturas_ComisionCLIENTE].AsString := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_Facturas_ComisionID_PROVEEDOR].AsInteger; +end; + +procedure TFacturas_ComisionDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_Facturas_ComisionID_PROVEEDOR].AsInteger := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetPROVEEDORValue: String; +begin + result := DataTable.Fields[idx_Facturas_ComisionPROVEEDOR].AsString; +end; + +procedure TFacturas_ComisionDataTableRules.SetPROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_Facturas_ComisionPROVEEDOR].AsString := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetCOMISIONValue: Float; +begin + result := DataTable.Fields[idx_Facturas_ComisionCOMISION].AsFloat; +end; + +procedure TFacturas_ComisionDataTableRules.SetCOMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_Facturas_ComisionCOMISION].AsFloat := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetIMPORTE_COMISIONABLEValue: Currency; +begin + result := DataTable.Fields[idx_Facturas_ComisionIMPORTE_COMISIONABLE].AsCurrency; +end; + +procedure TFacturas_ComisionDataTableRules.SetIMPORTE_COMISIONABLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_Facturas_ComisionIMPORTE_COMISIONABLE].AsCurrency := aValue; +end; + +function TFacturas_ComisionDataTableRules.GetIMPORTE_COMISIONValue: Currency; +begin + result := DataTable.Fields[idx_Facturas_ComisionIMPORTE_COMISION].AsCurrency; +end; + +procedure TFacturas_ComisionDataTableRules.SetIMPORTE_COMISIONValue(const aValue: Currency); +begin + DataTable.Fields[idx_Facturas_ComisionIMPORTE_COMISION].AsCurrency := aValue; +end; + + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TComisionesDataTableRules } +constructor TComisionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TComisionesDataTableRules.Destroy; +begin + inherited; +end; + +function TComisionesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ComisionesID].AsInteger; +end; + +procedure TComisionesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ComisionesID].AsInteger := aValue; +end; + +function TComisionesDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ComisionesID_EMPRESA].AsInteger; +end; + +procedure TComisionesDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ComisionesID_EMPRESA].AsInteger := aValue; +end; + +function TComisionesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ComisionesREFERENCIA].AsString; +end; + +procedure TComisionesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ComisionesREFERENCIA].AsString := aValue; +end; + +function TComisionesDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_ComisionesID_AGENTE].AsInteger; +end; + +procedure TComisionesDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ComisionesID_AGENTE].AsInteger := aValue; +end; + +function TComisionesDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_ComisionesDESCRIPCION].AsString; +end; + +procedure TComisionesDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_ComisionesDESCRIPCION].AsString := aValue; +end; + +function TComisionesDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_ComisionesFECHA].AsDateTime; +end; + +procedure TComisionesDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ComisionesFECHA].AsDateTime := aValue; +end; + +function TComisionesDataTableRules.GetIMPORTE_TOTALValue: Float; +begin + result := DataTable.Fields[idx_ComisionesIMPORTE_TOTAL].AsFloat; +end; + +procedure TComisionesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_ComisionesIMPORTE_TOTAL].AsFloat := aValue; +end; + +function TComisionesDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ComisionesUSUARIO].AsString; +end; + +procedure TComisionesDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ComisionesUSUARIO].AsString := aValue; +end; + +function TComisionesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ComisionesNOMBRE].AsString; +end; + +procedure TComisionesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ComisionesNOMBRE].AsString := aValue; +end; + + +{ TComisiones_RefreshDataTableRules } +constructor TComisiones_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TComisiones_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TComisiones_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Comisiones_RefreshID].AsInteger; +end; + +procedure TComisiones_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Comisiones_RefreshID].AsInteger := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_Comisiones_RefreshID_EMPRESA].AsInteger; +end; + +procedure TComisiones_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_Comisiones_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_Comisiones_RefreshREFERENCIA].AsString; +end; + +procedure TComisiones_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_Comisiones_RefreshREFERENCIA].AsString := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_Comisiones_RefreshID_AGENTE].AsInteger; +end; + +procedure TComisiones_RefreshDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_Comisiones_RefreshID_AGENTE].AsInteger := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_Comisiones_RefreshDESCRIPCION].AsString; +end; + +procedure TComisiones_RefreshDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_Comisiones_RefreshDESCRIPCION].AsString := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_Comisiones_RefreshFECHA].AsDateTime; +end; + +procedure TComisiones_RefreshDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Comisiones_RefreshFECHA].AsDateTime := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetIMPORTE_TOTALValue: Float; +begin + result := DataTable.Fields[idx_Comisiones_RefreshIMPORTE_TOTAL].AsFloat; +end; + +procedure TComisiones_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_Comisiones_RefreshIMPORTE_TOTAL].AsFloat := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_Comisiones_RefreshUSUARIO].AsString; +end; + +procedure TComisiones_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_Comisiones_RefreshUSUARIO].AsString := aValue; +end; + +function TComisiones_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_Comisiones_RefreshNOMBRE].AsString; +end; + +procedure TComisiones_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_Comisiones_RefreshNOMBRE].AsString := aValue; +end; + + +{ TV_Detalles_Facturas_ComisionDataTableRules } +constructor TV_Detalles_Facturas_ComisionDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TV_Detalles_Facturas_ComisionDataTableRules.Destroy; +begin + inherited; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_EMPRESA].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_EMPRESA].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_AGENTE].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_AGENTE].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetAGENTEValue: String; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionAGENTE].AsString; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetAGENTEValue(const aValue: String); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionAGENTE].AsString := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_FACTURA].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_FACTURA].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionFECHA].AsDateTime; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionFECHA].AsDateTime := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionREFERENCIA].AsString; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionREFERENCIA].AsString := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionSITUACION].AsString; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionSITUACION].AsString := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_CLIENTE].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_CLIENTE].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetCLIENTEValue: String; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionCLIENTE].AsString; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetCLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionCLIENTE].AsString := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_PROVEEDOR].AsInteger; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionID_PROVEEDOR].AsInteger := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetPROVEEDORValue: String; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionPROVEEDOR].AsString; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetPROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionPROVEEDOR].AsString := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetCOMISIONValue: Float; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionCOMISION].AsFloat; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetCOMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionCOMISION].AsFloat := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetIMPORTE_COMISIONABLEValue: Currency; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE].AsCurrency; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetIMPORTE_COMISIONABLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE].AsCurrency := aValue; +end; + +function TV_Detalles_Facturas_ComisionDataTableRules.GetIMPORTE_COMISIONValue: Currency; +begin + result := DataTable.Fields[idx_V_Detalles_Facturas_ComisionIMPORTE_COMISION].AsCurrency; +end; + +procedure TV_Detalles_Facturas_ComisionDataTableRules.SetIMPORTE_COMISIONValue(const aValue: Currency); +begin + DataTable.Fields[idx_V_Detalles_Facturas_ComisionIMPORTE_COMISION].AsCurrency := aValue; +end; + + +initialization + RegisterDataTableRules(RID_Facturas_Comision, TFacturas_ComisionDataTableRules); + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_Comisiones, TComisionesDataTableRules); + RegisterDataTableRules(RID_Comisiones_Refresh, TComisiones_RefreshDataTableRules); + RegisterDataTableRules(RID_V_Detalles_Facturas_Comision, TV_Detalles_Facturas_ComisionDataTableRules); + +end. diff --git a/Source/Modulos/Comisiones/Model/schComisionesServer_Intf.pas b/Source/Modulos/Comisiones/Model/schComisionesServer_Intf.pas new file mode 100644 index 00000000..b793cc81 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schComisionesServer_Intf.pas @@ -0,0 +1,1279 @@ +unit schComisionesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schComisionesClient_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_Facturas_ComisionDelta = '{80016781-B9E4-49D8-B7A6-09256F591FC2}'; + RID_DarReferenciaDelta = '{B5AAD341-FC85-4146-8DCB-97B869953385}'; + RID_ComisionesDelta = '{8AB7044C-6835-494A-A477-7FBF4270C7AE}'; + RID_Comisiones_RefreshDelta = '{501F63F6-C629-479D-AAC7-54026E38E40D}'; + RID_V_Detalles_Facturas_ComisionDelta = '{C7A1565B-19DF-4CA4-B4B9-4A63743484B7}'; + +type + { IFacturas_ComisionDelta } + IFacturas_ComisionDelta = interface(IFacturas_Comision) + ['{80016781-B9E4-49D8-B7A6-09256F591FC2}'] + { Property getters and setters } + function GetOldID_EMPRESAValue : Integer; + function GetOldID_AGENTEValue : Integer; + function GetOldAGENTEValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldFECHAValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldCLIENTEValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldPROVEEDORValue : String; + function GetOldCOMISIONValue : Float; + function GetOldIMPORTE_COMISIONABLEValue : Currency; + function GetOldIMPORTE_COMISIONValue : Currency; + + { Properties } + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property OldIMPORTE_COMISIONABLE : Currency read GetOldIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISION : Currency read GetOldIMPORTE_COMISIONValue; + end; + + { TFacturas_ComisionBusinessProcessorRules } + TFacturas_ComisionBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturas_Comision, IFacturas_ComisionDelta) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + function GetOldAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + function GetOldCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + function GetOldPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + function GetOldCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Currency; virtual; + function GetOldIMPORTE_COMISIONABLEValue: Currency; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); virtual; + function GetIMPORTE_COMISIONValue: Currency; virtual; + function GetOldIMPORTE_COMISIONValue: Currency; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); virtual; + + { Properties } + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property AGENTE : String read GetAGENTEValue write SetAGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property CLIENTE : String read GetCLIENTEValue write SetCLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property IMPORTE_COMISIONABLE : Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISIONABLE : Currency read GetOldIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION : Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + property OldIMPORTE_COMISION : Currency read GetOldIMPORTE_COMISIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{B5AAD341-FC85-4146-8DCB-97B869953385}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IComisionesDelta } + IComisionesDelta = interface(IComisiones) + ['{8AB7044C-6835-494A-A477-7FBF4270C7AE}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldDESCRIPCIONValue : String; + function GetOldFECHAValue : DateTime; + function GetOldIMPORTE_TOTALValue : Float; + function GetOldUSUARIOValue : String; + function GetOldNOMBREValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TComisionesBusinessProcessorRules } + TComisionesBusinessProcessorRules = class(TDABusinessProcessorRules, IComisiones, IComisionesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + function GetOldIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property IMPORTE_TOTAL : Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IComisiones_RefreshDelta } + IComisiones_RefreshDelta = interface(IComisiones_Refresh) + ['{501F63F6-C629-479D-AAC7-54026E38E40D}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldDESCRIPCIONValue : String; + function GetOldFECHAValue : DateTime; + function GetOldIMPORTE_TOTALValue : Float; + function GetOldUSUARIOValue : String; + function GetOldNOMBREValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TComisiones_RefreshBusinessProcessorRules } + TComisiones_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IComisiones_Refresh, IComisiones_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + function GetOldIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property IMPORTE_TOTAL : Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IV_Detalles_Facturas_ComisionDelta } + IV_Detalles_Facturas_ComisionDelta = interface(IV_Detalles_Facturas_Comision) + ['{C7A1565B-19DF-4CA4-B4B9-4A63743484B7}'] + { Property getters and setters } + function GetOldID_EMPRESAValue : Integer; + function GetOldID_AGENTEValue : Integer; + function GetOldAGENTEValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldFECHAValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldCLIENTEValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldPROVEEDORValue : String; + function GetOldCOMISIONValue : Float; + function GetOldIMPORTE_COMISIONABLEValue : Currency; + function GetOldIMPORTE_COMISIONValue : Currency; + + { Properties } + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property OldIMPORTE_COMISIONABLE : Currency read GetOldIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISION : Currency read GetOldIMPORTE_COMISIONValue; + end; + + { TV_Detalles_Facturas_ComisionBusinessProcessorRules } + TV_Detalles_Facturas_ComisionBusinessProcessorRules = class(TDABusinessProcessorRules, IV_Detalles_Facturas_Comision, IV_Detalles_Facturas_ComisionDelta) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + function GetOldAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + function GetOldCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + function GetOldPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + function GetOldCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Currency; virtual; + function GetOldIMPORTE_COMISIONABLEValue: Currency; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Currency); virtual; + function GetIMPORTE_COMISIONValue: Currency; virtual; + function GetOldIMPORTE_COMISIONValue: Currency; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Currency); virtual; + + { Properties } + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property AGENTE : String read GetAGENTEValue write SetAGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property CLIENTE : String read GetCLIENTEValue write SetCLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property IMPORTE_COMISIONABLE : Currency read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISIONABLE : Currency read GetOldIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION : Currency read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + property OldIMPORTE_COMISION : Currency read GetOldIMPORTE_COMISIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TFacturas_ComisionBusinessProcessorRules } +constructor TFacturas_ComisionBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturas_ComisionBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_EMPRESA]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_EMPRESA]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_EMPRESA] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_AGENTE]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_AGENTE]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_AGENTE] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionAGENTE]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionAGENTE]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetAGENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionAGENTE] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_FACTURA]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_FACTURA]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_FACTURA] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_COMISION_LIQUIDADA]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_COMISION_LIQUIDADA]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_COMISION_LIQUIDADA] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionFECHA]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionFECHA]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionFECHA] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionREFERENCIA]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionREFERENCIA]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionREFERENCIA] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionSITUACION]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionSITUACION]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionSITUACION] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_CLIENTE]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_CLIENTE]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_CLIENTE] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionCLIENTE]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionCLIENTE]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetCLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionCLIENTE] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_PROVEEDOR]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionID_PROVEEDOR]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionID_PROVEEDOR] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionPROVEEDOR]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionPROVEEDOR]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetPROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionPROVEEDOR] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionCOMISION]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionCOMISION]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetCOMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionCOMISION] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetIMPORTE_COMISIONABLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionIMPORTE_COMISIONABLE]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldIMPORTE_COMISIONABLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionIMPORTE_COMISIONABLE]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetIMPORTE_COMISIONABLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionIMPORTE_COMISIONABLE] := aValue; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetIMPORTE_COMISIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionIMPORTE_COMISION]; +end; + +function TFacturas_ComisionBusinessProcessorRules.GetOldIMPORTE_COMISIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Facturas_ComisionIMPORTE_COMISION]; +end; + +procedure TFacturas_ComisionBusinessProcessorRules.SetIMPORTE_COMISIONValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Facturas_ComisionIMPORTE_COMISION] := aValue; +end; + + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TComisionesBusinessProcessorRules } +constructor TComisionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TComisionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TComisionesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID]; +end; + +function TComisionesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesID]; +end; + +procedure TComisionesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID_EMPRESA]; +end; + +function TComisionesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesID_EMPRESA]; +end; + +procedure TComisionesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID_EMPRESA] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesREFERENCIA]; +end; + +function TComisionesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesREFERENCIA]; +end; + +procedure TComisionesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesREFERENCIA] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID_AGENTE]; +end; + +function TComisionesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesID_AGENTE]; +end; + +procedure TComisionesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesID_AGENTE] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesDESCRIPCION]; +end; + +function TComisionesBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesDESCRIPCION]; +end; + +procedure TComisionesBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesDESCRIPCION] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesFECHA]; +end; + +function TComisionesBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesFECHA]; +end; + +procedure TComisionesBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesFECHA] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesIMPORTE_TOTAL]; +end; + +function TComisionesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesIMPORTE_TOTAL]; +end; + +procedure TComisionesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesIMPORTE_TOTAL] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesUSUARIO]; +end; + +function TComisionesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesUSUARIO]; +end; + +procedure TComisionesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesUSUARIO] := aValue; +end; + +function TComisionesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesNOMBRE]; +end; + +function TComisionesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ComisionesNOMBRE]; +end; + +procedure TComisionesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ComisionesNOMBRE] := aValue; +end; + + +{ TComisiones_RefreshBusinessProcessorRules } +constructor TComisiones_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TComisiones_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshID]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID_EMPRESA]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshID_EMPRESA]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID_EMPRESA] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshREFERENCIA]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshREFERENCIA]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshREFERENCIA] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID_AGENTE]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshID_AGENTE]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshID_AGENTE] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshDESCRIPCION]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshDESCRIPCION]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshDESCRIPCION] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshFECHA]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshFECHA]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshFECHA] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshIMPORTE_TOTAL]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshIMPORTE_TOTAL]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshUSUARIO]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshUSUARIO]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshUSUARIO] := aValue; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshNOMBRE]; +end; + +function TComisiones_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Comisiones_RefreshNOMBRE]; +end; + +procedure TComisiones_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Comisiones_RefreshNOMBRE] := aValue; +end; + + +{ TV_Detalles_Facturas_ComisionBusinessProcessorRules } +constructor TV_Detalles_Facturas_ComisionBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TV_Detalles_Facturas_ComisionBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_EMPRESA]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_EMPRESA]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_EMPRESA] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_AGENTE]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_AGENTE]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_AGENTE] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionAGENTE]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionAGENTE]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetAGENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionAGENTE] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_FACTURA]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_FACTURA]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_FACTURA] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_COMISION_LIQUIDADA] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionFECHA]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionFECHA]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionFECHA] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionREFERENCIA]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionREFERENCIA]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionREFERENCIA] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionSITUACION]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionSITUACION]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionSITUACION] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_CLIENTE]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_CLIENTE]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_CLIENTE] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionCLIENTE]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionCLIENTE]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetCLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionCLIENTE] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_PROVEEDOR]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionID_PROVEEDOR]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionID_PROVEEDOR] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionPROVEEDOR]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionPROVEEDOR]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetPROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionPROVEEDOR] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionCOMISION]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionCOMISION]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetCOMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionCOMISION] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetIMPORTE_COMISIONABLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldIMPORTE_COMISIONABLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetIMPORTE_COMISIONABLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISIONABLE] := aValue; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetIMPORTE_COMISIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISION]; +end; + +function TV_Detalles_Facturas_ComisionBusinessProcessorRules.GetOldIMPORTE_COMISIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISION]; +end; + +procedure TV_Detalles_Facturas_ComisionBusinessProcessorRules.SetIMPORTE_COMISIONValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_V_Detalles_Facturas_ComisionIMPORTE_COMISION] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_Facturas_ComisionDelta, TFacturas_ComisionBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ComisionesDelta, TComisionesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Comisiones_RefreshDelta, TComisiones_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_V_Detalles_Facturas_ComisionDelta, TV_Detalles_Facturas_ComisionBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Comisiones/Model/schReportClient_Intf.pas b/Source/Modulos/Comisiones/Model/schReportClient_Intf.pas new file mode 100644 index 00000000..85cf0aa5 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schReportClient_Intf.pas @@ -0,0 +1,622 @@ +unit schReportClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_InformeComisiones = '{1FE7EF1F-1A5F-49F0-884E-059EA3E9AEDB}'; + + { Data table names } + nme_InformeComisiones = 'InformeComisiones'; + + { InformeComisiones fields } + fld_InformeComisionesFECHA_COMISION = 'FECHA_COMISION'; + fld_InformeComisionesREFERENCIA_COMISION = 'REFERENCIA_COMISION'; + fld_InformeComisionesDESCRIPCION = 'DESCRIPCION'; + fld_InformeComisionesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_InformeComisionesID_EMPRESA = 'ID_EMPRESA'; + fld_InformeComisionesNIF_CIF_EMPRESA = 'NIF_CIF_EMPRESA'; + fld_InformeComisionesRAZON_SOCIAL = 'RAZON_SOCIAL'; + fld_InformeComisionesCALLE_EMPRESA = 'CALLE_EMPRESA'; + fld_InformeComisionesPOBLACION_EMPRESA = 'POBLACION_EMPRESA'; + fld_InformeComisionesPROVINCIA_EMPRESA = 'PROVINCIA_EMPRESA'; + fld_InformeComisionesCODIGO_POSTAL_EMPRESA = 'CODIGO_POSTAL_EMPRESA'; + fld_InformeComisionesTELEFONO_1 = 'TELEFONO_1'; + fld_InformeComisionesFAX = 'FAX'; + fld_InformeComisionesMOVIL_1 = 'MOVIL_1'; + fld_InformeComisionesEMAIL_1 = 'EMAIL_1'; + fld_InformeComisionesPAGINA_WEB = 'PAGINA_WEB'; + fld_InformeComisionesREGISTRO_MERCANTIL = 'REGISTRO_MERCANTIL'; + fld_InformeComisionesID_AGENTE = 'ID_AGENTE'; + fld_InformeComisionesAGENTE = 'AGENTE'; + fld_InformeComisionesID_FACTURA = 'ID_FACTURA'; + fld_InformeComisionesID_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_InformeComisionesFECHA = 'FECHA'; + fld_InformeComisionesREFERENCIA = 'REFERENCIA'; + fld_InformeComisionesSITUACION = 'SITUACION'; + fld_InformeComisionesID_CLIENTE = 'ID_CLIENTE'; + fld_InformeComisionesCLIENTE = 'CLIENTE'; + fld_InformeComisionesID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_InformeComisionesPROVEEDOR = 'PROVEEDOR'; + fld_InformeComisionesCOMISION = 'COMISION'; + fld_InformeComisionesIMPORTE_COMISIONABLE = 'IMPORTE_COMISIONABLE'; + fld_InformeComisionesIMPORTE_COMISION = 'IMPORTE_COMISION'; + + { InformeComisiones field indexes } + idx_InformeComisionesFECHA_COMISION = 0; + idx_InformeComisionesREFERENCIA_COMISION = 1; + idx_InformeComisionesDESCRIPCION = 2; + idx_InformeComisionesIMPORTE_TOTAL = 3; + idx_InformeComisionesID_EMPRESA = 4; + idx_InformeComisionesNIF_CIF_EMPRESA = 5; + idx_InformeComisionesRAZON_SOCIAL = 6; + idx_InformeComisionesCALLE_EMPRESA = 7; + idx_InformeComisionesPOBLACION_EMPRESA = 8; + idx_InformeComisionesPROVINCIA_EMPRESA = 9; + idx_InformeComisionesCODIGO_POSTAL_EMPRESA = 10; + idx_InformeComisionesTELEFONO_1 = 11; + idx_InformeComisionesFAX = 12; + idx_InformeComisionesMOVIL_1 = 13; + idx_InformeComisionesEMAIL_1 = 14; + idx_InformeComisionesPAGINA_WEB = 15; + idx_InformeComisionesREGISTRO_MERCANTIL = 16; + idx_InformeComisionesID_AGENTE = 17; + idx_InformeComisionesAGENTE = 18; + idx_InformeComisionesID_FACTURA = 19; + idx_InformeComisionesID_COMISION_LIQUIDADA = 20; + idx_InformeComisionesFECHA = 21; + idx_InformeComisionesREFERENCIA = 22; + idx_InformeComisionesSITUACION = 23; + idx_InformeComisionesID_CLIENTE = 24; + idx_InformeComisionesCLIENTE = 25; + idx_InformeComisionesID_PROVEEDOR = 26; + idx_InformeComisionesPROVEEDOR = 27; + idx_InformeComisionesCOMISION = 28; + idx_InformeComisionesIMPORTE_COMISIONABLE = 29; + idx_InformeComisionesIMPORTE_COMISION = 30; + +type + { IInformeComisiones } + IInformeComisiones = interface(IDAStronglyTypedDataTable) + ['{267AC63D-9C18-4E68-8E59-55511F3F7AAD}'] + { Property getters and setters } + function GetFECHA_COMISIONValue: DateTime; + procedure SetFECHA_COMISIONValue(const aValue: DateTime); + function GetREFERENCIA_COMISIONValue: String; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetIMPORTE_TOTALValue: Float; + procedure SetIMPORTE_TOTALValue(const aValue: Float); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetNIF_CIF_EMPRESAValue: String; + procedure SetNIF_CIF_EMPRESAValue(const aValue: String); + function GetRAZON_SOCIALValue: String; + procedure SetRAZON_SOCIALValue(const aValue: String); + function GetCALLE_EMPRESAValue: String; + procedure SetCALLE_EMPRESAValue(const aValue: String); + function GetPOBLACION_EMPRESAValue: String; + procedure SetPOBLACION_EMPRESAValue(const aValue: String); + function GetPROVINCIA_EMPRESAValue: String; + procedure SetPROVINCIA_EMPRESAValue(const aValue: String); + function GetCODIGO_POSTAL_EMPRESAValue: String; + procedure SetCODIGO_POSTAL_EMPRESAValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetREGISTRO_MERCANTILValue: String; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetAGENTEValue: String; + procedure SetAGENTEValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetCLIENTEValue: String; + procedure SetCLIENTEValue(const aValue: String); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetPROVEEDORValue: String; + procedure SetPROVEEDORValue(const aValue: String); + function GetCOMISIONValue: Float; + procedure SetCOMISIONValue(const aValue: Float); + function GetIMPORTE_COMISIONABLEValue: Float; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Float); + function GetIMPORTE_COMISIONValue: Float; + procedure SetIMPORTE_COMISIONValue(const aValue: Float); + + + { Properties } + property FECHA_COMISION: DateTime read GetFECHA_COMISIONValue write SetFECHA_COMISIONValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NIF_CIF_EMPRESA: String read GetNIF_CIF_EMPRESAValue write SetNIF_CIF_EMPRESAValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE_EMPRESA: String read GetCALLE_EMPRESAValue write SetCALLE_EMPRESAValue; + property POBLACION_EMPRESA: String read GetPOBLACION_EMPRESAValue write SetPOBLACION_EMPRESAValue; + property PROVINCIA_EMPRESA: String read GetPROVINCIA_EMPRESAValue write SetPROVINCIA_EMPRESAValue; + property CODIGO_POSTAL_EMPRESA: String read GetCODIGO_POSTAL_EMPRESAValue write SetCODIGO_POSTAL_EMPRESAValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property FAX: String read GetFAXValue write SetFAXValue; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Float read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Float read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + end; + + { TInformeComisionesDataTableRules } + TInformeComisionesDataTableRules = class(TDADataTableRules, IInformeComisiones) + private + protected + { Property getters and setters } + function GetFECHA_COMISIONValue: DateTime; virtual; + procedure SetFECHA_COMISIONValue(const aValue: DateTime); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNIF_CIF_EMPRESAValue: String; virtual; + procedure SetNIF_CIF_EMPRESAValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLE_EMPRESAValue: String; virtual; + procedure SetCALLE_EMPRESAValue(const aValue: String); virtual; + function GetPOBLACION_EMPRESAValue: String; virtual; + procedure SetPOBLACION_EMPRESAValue(const aValue: String); virtual; + function GetPROVINCIA_EMPRESAValue: String; virtual; + procedure SetPROVINCIA_EMPRESAValue(const aValue: String); virtual; + function GetCODIGO_POSTAL_EMPRESAValue: String; virtual; + procedure SetCODIGO_POSTAL_EMPRESAValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Float; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONValue: Float; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Float); virtual; + + { Properties } + property FECHA_COMISION: DateTime read GetFECHA_COMISIONValue write SetFECHA_COMISIONValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NIF_CIF_EMPRESA: String read GetNIF_CIF_EMPRESAValue write SetNIF_CIF_EMPRESAValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE_EMPRESA: String read GetCALLE_EMPRESAValue write SetCALLE_EMPRESAValue; + property POBLACION_EMPRESA: String read GetPOBLACION_EMPRESAValue write SetPOBLACION_EMPRESAValue; + property PROVINCIA_EMPRESA: String read GetPROVINCIA_EMPRESAValue write SetPROVINCIA_EMPRESAValue; + property CODIGO_POSTAL_EMPRESA: String read GetCODIGO_POSTAL_EMPRESAValue write SetCODIGO_POSTAL_EMPRESAValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property FAX: String read GetFAXValue write SetFAXValue; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property IMPORTE_COMISIONABLE: Float read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION: Float read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TInformeComisionesDataTableRules } +constructor TInformeComisionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TInformeComisionesDataTableRules.Destroy; +begin + inherited; +end; + +function TInformeComisionesDataTableRules.GetFECHA_COMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_InformeComisionesFECHA_COMISION].AsDateTime; +end; + +procedure TInformeComisionesDataTableRules.SetFECHA_COMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_InformeComisionesFECHA_COMISION].AsDateTime := aValue; +end; + +function TInformeComisionesDataTableRules.GetREFERENCIA_COMISIONValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesREFERENCIA_COMISION].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesREFERENCIA_COMISION].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesDESCRIPCION].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesDESCRIPCION].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetIMPORTE_TOTALValue: Float; +begin + result := DataTable.Fields[idx_InformeComisionesIMPORTE_TOTAL].AsFloat; +end; + +procedure TInformeComisionesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeComisionesIMPORTE_TOTAL].AsFloat := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_EMPRESA].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_EMPRESA].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetNIF_CIF_EMPRESAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesNIF_CIF_EMPRESA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetNIF_CIF_EMPRESAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesNIF_CIF_EMPRESA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetRAZON_SOCIALValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesRAZON_SOCIAL].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetRAZON_SOCIALValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesRAZON_SOCIAL].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetCALLE_EMPRESAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesCALLE_EMPRESA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetCALLE_EMPRESAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesCALLE_EMPRESA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetPOBLACION_EMPRESAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesPOBLACION_EMPRESA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetPOBLACION_EMPRESAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesPOBLACION_EMPRESA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetPROVINCIA_EMPRESAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesPROVINCIA_EMPRESA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetPROVINCIA_EMPRESAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesPROVINCIA_EMPRESA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetCODIGO_POSTAL_EMPRESAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesCODIGO_POSTAL_EMPRESA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetCODIGO_POSTAL_EMPRESAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesCODIGO_POSTAL_EMPRESA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_InformeComisionesTELEFONO_1].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesTELEFONO_1].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesFAX].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesFAX].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_InformeComisionesMOVIL_1].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesMOVIL_1].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_InformeComisionesEMAIL_1].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesEMAIL_1].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesPAGINA_WEB].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesPAGINA_WEB].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetREGISTRO_MERCANTILValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesREGISTRO_MERCANTIL].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesREGISTRO_MERCANTIL].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_AGENTE].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_AGENTE].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetAGENTEValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesAGENTE].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetAGENTEValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesAGENTE].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_FACTURA].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_FACTURA].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_COMISION_LIQUIDADA].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_COMISION_LIQUIDADA].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_InformeComisionesFECHA].AsDateTime; +end; + +procedure TInformeComisionesDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_InformeComisionesFECHA].AsDateTime := aValue; +end; + +function TInformeComisionesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesREFERENCIA].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesREFERENCIA].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesSITUACION].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesSITUACION].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_CLIENTE].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_CLIENTE].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetCLIENTEValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesCLIENTE].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetCLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesCLIENTE].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_InformeComisionesID_PROVEEDOR].AsInteger; +end; + +procedure TInformeComisionesDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_InformeComisionesID_PROVEEDOR].AsInteger := aValue; +end; + +function TInformeComisionesDataTableRules.GetPROVEEDORValue: String; +begin + result := DataTable.Fields[idx_InformeComisionesPROVEEDOR].AsString; +end; + +procedure TInformeComisionesDataTableRules.SetPROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_InformeComisionesPROVEEDOR].AsString := aValue; +end; + +function TInformeComisionesDataTableRules.GetCOMISIONValue: Float; +begin + result := DataTable.Fields[idx_InformeComisionesCOMISION].AsFloat; +end; + +procedure TInformeComisionesDataTableRules.SetCOMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeComisionesCOMISION].AsFloat := aValue; +end; + +function TInformeComisionesDataTableRules.GetIMPORTE_COMISIONABLEValue: Float; +begin + result := DataTable.Fields[idx_InformeComisionesIMPORTE_COMISIONABLE].AsFloat; +end; + +procedure TInformeComisionesDataTableRules.SetIMPORTE_COMISIONABLEValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeComisionesIMPORTE_COMISIONABLE].AsFloat := aValue; +end; + +function TInformeComisionesDataTableRules.GetIMPORTE_COMISIONValue: Float; +begin + result := DataTable.Fields[idx_InformeComisionesIMPORTE_COMISION].AsFloat; +end; + +procedure TInformeComisionesDataTableRules.SetIMPORTE_COMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeComisionesIMPORTE_COMISION].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_InformeComisiones, TInformeComisionesDataTableRules); + +end. diff --git a/Source/Modulos/Comisiones/Model/schReportServer_Intf.pas b/Source/Modulos/Comisiones/Model/schReportServer_Intf.pas new file mode 100644 index 00000000..b36c10a7 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schReportServer_Intf.pas @@ -0,0 +1,739 @@ +unit schReportServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schReportClient_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_InformeComisionesDelta = '{624C756A-A5EA-4038-A339-5B0C8E25A076}'; + +type + { IInformeComisionesDelta } + IInformeComisionesDelta = interface(IInformeComisiones) + ['{624C756A-A5EA-4038-A339-5B0C8E25A076}'] + { Property getters and setters } + function GetOldFECHA_COMISIONValue : DateTime; + function GetOldREFERENCIA_COMISIONValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldIMPORTE_TOTALValue : Float; + function GetOldID_EMPRESAValue : Integer; + function GetOldNIF_CIF_EMPRESAValue : String; + function GetOldRAZON_SOCIALValue : String; + function GetOldCALLE_EMPRESAValue : String; + function GetOldPOBLACION_EMPRESAValue : String; + function GetOldPROVINCIA_EMPRESAValue : String; + function GetOldCODIGO_POSTAL_EMPRESAValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldFAXValue : String; + function GetOldMOVIL_1Value : String; + function GetOldEMAIL_1Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldREGISTRO_MERCANTILValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldAGENTEValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldFECHAValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldCLIENTEValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldPROVEEDORValue : String; + function GetOldCOMISIONValue : Float; + function GetOldIMPORTE_COMISIONABLEValue : Float; + function GetOldIMPORTE_COMISIONValue : Float; + + { Properties } + property OldFECHA_COMISION : DateTime read GetOldFECHA_COMISIONValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNIF_CIF_EMPRESA : String read GetOldNIF_CIF_EMPRESAValue; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property OldCALLE_EMPRESA : String read GetOldCALLE_EMPRESAValue; + property OldPOBLACION_EMPRESA : String read GetOldPOBLACION_EMPRESAValue; + property OldPROVINCIA_EMPRESA : String read GetOldPROVINCIA_EMPRESAValue; + property OldCODIGO_POSTAL_EMPRESA : String read GetOldCODIGO_POSTAL_EMPRESAValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldFAX : String read GetOldFAXValue; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property OldIMPORTE_COMISIONABLE : Float read GetOldIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISION : Float read GetOldIMPORTE_COMISIONValue; + end; + + { TInformeComisionesBusinessProcessorRules } + TInformeComisionesBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeComisiones, IInformeComisionesDelta) + private + protected + { Property getters and setters } + function GetFECHA_COMISIONValue: DateTime; virtual; + function GetOldFECHA_COMISIONValue: DateTime; virtual; + procedure SetFECHA_COMISIONValue(const aValue: DateTime); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + function GetOldREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + function GetOldIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNIF_CIF_EMPRESAValue: String; virtual; + function GetOldNIF_CIF_EMPRESAValue: String; virtual; + procedure SetNIF_CIF_EMPRESAValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + function GetOldRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLE_EMPRESAValue: String; virtual; + function GetOldCALLE_EMPRESAValue: String; virtual; + procedure SetCALLE_EMPRESAValue(const aValue: String); virtual; + function GetPOBLACION_EMPRESAValue: String; virtual; + function GetOldPOBLACION_EMPRESAValue: String; virtual; + procedure SetPOBLACION_EMPRESAValue(const aValue: String); virtual; + function GetPROVINCIA_EMPRESAValue: String; virtual; + function GetOldPROVINCIA_EMPRESAValue: String; virtual; + procedure SetPROVINCIA_EMPRESAValue(const aValue: String); virtual; + function GetCODIGO_POSTAL_EMPRESAValue: String; virtual; + function GetOldCODIGO_POSTAL_EMPRESAValue: String; virtual; + procedure SetCODIGO_POSTAL_EMPRESAValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + function GetOldREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetAGENTEValue: String; virtual; + function GetOldAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetCLIENTEValue: String; virtual; + function GetOldCLIENTEValue: String; virtual; + procedure SetCLIENTEValue(const aValue: String); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetPROVEEDORValue: String; virtual; + function GetOldPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + function GetOldCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONABLEValue: Float; virtual; + function GetOldIMPORTE_COMISIONABLEValue: Float; virtual; + procedure SetIMPORTE_COMISIONABLEValue(const aValue: Float); virtual; + function GetIMPORTE_COMISIONValue: Float; virtual; + function GetOldIMPORTE_COMISIONValue: Float; virtual; + procedure SetIMPORTE_COMISIONValue(const aValue: Float); virtual; + + { Properties } + property FECHA_COMISION : DateTime read GetFECHA_COMISIONValue write SetFECHA_COMISIONValue; + property OldFECHA_COMISION : DateTime read GetOldFECHA_COMISIONValue; + property REFERENCIA_COMISION : String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property IMPORTE_TOTAL : Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property NIF_CIF_EMPRESA : String read GetNIF_CIF_EMPRESAValue write SetNIF_CIF_EMPRESAValue; + property OldNIF_CIF_EMPRESA : String read GetOldNIF_CIF_EMPRESAValue; + property RAZON_SOCIAL : String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property CALLE_EMPRESA : String read GetCALLE_EMPRESAValue write SetCALLE_EMPRESAValue; + property OldCALLE_EMPRESA : String read GetOldCALLE_EMPRESAValue; + property POBLACION_EMPRESA : String read GetPOBLACION_EMPRESAValue write SetPOBLACION_EMPRESAValue; + property OldPOBLACION_EMPRESA : String read GetOldPOBLACION_EMPRESAValue; + property PROVINCIA_EMPRESA : String read GetPROVINCIA_EMPRESAValue write SetPROVINCIA_EMPRESAValue; + property OldPROVINCIA_EMPRESA : String read GetOldPROVINCIA_EMPRESAValue; + property CODIGO_POSTAL_EMPRESA : String read GetCODIGO_POSTAL_EMPRESAValue write SetCODIGO_POSTAL_EMPRESAValue; + property OldCODIGO_POSTAL_EMPRESA : String read GetOldCODIGO_POSTAL_EMPRESAValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property REGISTRO_MERCANTIL : String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property AGENTE : String read GetAGENTEValue write SetAGENTEValue; + property OldAGENTE : String read GetOldAGENTEValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property CLIENTE : String read GetCLIENTEValue write SetCLIENTEValue; + property OldCLIENTE : String read GetOldCLIENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + property IMPORTE_COMISIONABLE : Float read GetIMPORTE_COMISIONABLEValue write SetIMPORTE_COMISIONABLEValue; + property OldIMPORTE_COMISIONABLE : Float read GetOldIMPORTE_COMISIONABLEValue; + property IMPORTE_COMISION : Float read GetIMPORTE_COMISIONValue write SetIMPORTE_COMISIONValue; + property OldIMPORTE_COMISION : Float read GetOldIMPORTE_COMISIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TInformeComisionesBusinessProcessorRules } +constructor TInformeComisionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TInformeComisionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TInformeComisionesBusinessProcessorRules.GetFECHA_COMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFECHA_COMISION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldFECHA_COMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesFECHA_COMISION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetFECHA_COMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFECHA_COMISION] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREFERENCIA_COMISION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesREFERENCIA_COMISION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREFERENCIA_COMISION] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesDESCRIPCION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesDESCRIPCION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesDESCRIPCION] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_TOTAL]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesIMPORTE_TOTAL]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_TOTAL] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetNIF_CIF_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesNIF_CIF_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldNIF_CIF_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesNIF_CIF_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetNIF_CIF_EMPRESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesNIF_CIF_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesRAZON_SOCIAL]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesRAZON_SOCIAL]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetRAZON_SOCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesRAZON_SOCIAL] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetCALLE_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCALLE_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldCALLE_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesCALLE_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetCALLE_EMPRESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCALLE_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetPOBLACION_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPOBLACION_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldPOBLACION_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesPOBLACION_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetPOBLACION_EMPRESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPOBLACION_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetPROVINCIA_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPROVINCIA_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldPROVINCIA_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesPROVINCIA_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetPROVINCIA_EMPRESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPROVINCIA_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetCODIGO_POSTAL_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCODIGO_POSTAL_EMPRESA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldCODIGO_POSTAL_EMPRESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesCODIGO_POSTAL_EMPRESA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetCODIGO_POSTAL_EMPRESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCODIGO_POSTAL_EMPRESA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesTELEFONO_1]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesTELEFONO_1]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesTELEFONO_1] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFAX]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesFAX]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFAX] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesMOVIL_1]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesMOVIL_1]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesMOVIL_1] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesEMAIL_1]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesEMAIL_1]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesEMAIL_1] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPAGINA_WEB]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesPAGINA_WEB]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPAGINA_WEB] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREGISTRO_MERCANTIL]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesREGISTRO_MERCANTIL]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREGISTRO_MERCANTIL] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_AGENTE]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_AGENTE]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_AGENTE] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesAGENTE]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesAGENTE]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetAGENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesAGENTE] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_FACTURA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_FACTURA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_FACTURA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_COMISION_LIQUIDADA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_COMISION_LIQUIDADA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_COMISION_LIQUIDADA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFECHA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesFECHA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesFECHA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREFERENCIA]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesREFERENCIA]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesREFERENCIA] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesSITUACION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesSITUACION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesSITUACION] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_CLIENTE]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_CLIENTE]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_CLIENTE] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCLIENTE]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldCLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesCLIENTE]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetCLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCLIENTE] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_PROVEEDOR]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesID_PROVEEDOR]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesID_PROVEEDOR] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPROVEEDOR]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesPROVEEDOR]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetPROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesPROVEEDOR] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCOMISION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesCOMISION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetCOMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesCOMISION] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetIMPORTE_COMISIONABLEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_COMISIONABLE]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldIMPORTE_COMISIONABLEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesIMPORTE_COMISIONABLE]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetIMPORTE_COMISIONABLEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_COMISIONABLE] := aValue; +end; + +function TInformeComisionesBusinessProcessorRules.GetIMPORTE_COMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_COMISION]; +end; + +function TInformeComisionesBusinessProcessorRules.GetOldIMPORTE_COMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeComisionesIMPORTE_COMISION]; +end; + +procedure TInformeComisionesBusinessProcessorRules.SetIMPORTE_COMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeComisionesIMPORTE_COMISION] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_InformeComisionesDelta, TInformeComisionesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Comisiones/Model/serverlog.txt b/Source/Modulos/Comisiones/Model/serverlog.txt new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Model/uBizComisiones.pas b/Source/Modulos/Comisiones/Model/uBizComisiones.pas new file mode 100644 index 00000000..dd481e01 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/uBizComisiones.pas @@ -0,0 +1,111 @@ +unit uBizComisiones; + +interface + +uses + Classes, uDAInterfaces, uDADataTable, schComisionesClient_Intf, uDBSelectionListUtils; + +const + BIZ_CLIENT_COMISIONES = 'Client.Comisiones'; + BIZ_CLIENT_FACTURAS_COMISION = 'Client.FacturasComisiones'; + +type + IBizFacturasComision = interface(IFacturas_Comision) + ['{5CFE7994-1947-4745-8BC1-8E02345D02FD}'] + end; + + IBizComisiones = interface(IComisiones) + ['{18C4B891-F7DB-460B-B031-F2064E3C242E}'] + function GetFacturas: IBizFacturasComision; + procedure SetFacturas(const Value: IBizFacturasComision); + property Facturas: IBizFacturasComision read GetFacturas write SetFacturas; + function EsNuevo : Boolean; + end; + + TBizFacturasComision = class(TFacturas_ComisionDataTableRules, IBizFacturasComision) + end; + + TBizComisiones = class(TComisionesDataTableRules, IBizComisiones, ISeleccionable) + protected + FFacturas: IBizFacturasComision; + FFacturasLink : TDADataSource; + FSeleccionableInterface : ISeleccionable; + + function GetFacturas: IBizFacturasComision; + procedure SetFacturas(const Value: IBizFacturasComision); + procedure OnNewRecord(Sender: TDADataTable); override; + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + property Facturas: IBizFacturasComision read GetFacturas write SetFacturas; + + procedure IniciarValoresComisionLiquidacionNuevo; virtual; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses SysUtils, uDataTableUtils, uDataModuleUsuarios; + +{ TBizComisiones } + +constructor TBizComisiones.Create(aDataTable: TDADataTable); +begin + inherited; + FFacturas := Nil; + FFacturasLink := TDADataSource.Create(NIL); + FFacturasLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizComisiones.Destroy; +begin + FFacturas := Nil; + FFacturasLink.Free; + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizComisiones.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizComisiones.GetFacturas: IBizFacturasComision; +begin + Result := FFacturas; +end; + +procedure TBizComisiones.IniciarValoresComisionLiquidacionNuevo; +begin + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + FECHA := Date; + USUARIO := dmUsuarios.LoginInfo.Usuario; + DESCRIPCION := 'Liquidación de comisiones del mes de ' + UpperCase(FormatDateTime('mmmm', date)); +end; + +procedure TBizComisiones.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresComisionLiquidacionNuevo; +end; + +procedure TBizComisiones.SetFacturas(const Value: IBizFacturasComision); +begin + FFacturas := Value; + EnlazarMaestroDetalle(FFacturasLink, FFacturas); + + if Assigned(FFacturas) then + if not FFacturas.DataTable.Active then + FFacturas.DataTable.Active := True; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_COMISIONES, TBizComisiones); + RegisterDataTableRules(BIZ_CLIENT_FACTURAS_COMISION, TBizFacturasComision); + +end. diff --git a/Source/Modulos/Comisiones/Model/uBizComisionesServer.pas b/Source/Modulos/Comisiones/Model/uBizComisionesServer.pas new file mode 100644 index 00000000..eeca9aa7 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/uBizComisionesServer.pas @@ -0,0 +1,79 @@ +unit uBizComisionesServer; + +interface + +uses + schComisionesServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_COMISIONES = 'Server.Comisiones'; + REF_COMISIONES = 'REF_COMISIONES'; + +type + TBizComisionesServer = class(TComisionesBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schComisionesClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizComisionesServer } + +procedure TBizComisionesServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_ComisionesREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_ComisionesREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_ComisionesID_EMPRESA]; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_COMISIONES, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_COMISIONES + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName('VALOR').AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_COMISIONES, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_COMISIONES, TBizComisionesServer); + +end. diff --git a/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.bdsproj b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.bdsproj new file mode 100644 index 00000000..5fc01461 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Comisiones_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/Comisiones/Plugin/Comisiones_plugin.dpk b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.dpk new file mode 100644 index 00000000..5e303281 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.dpk @@ -0,0 +1,41 @@ +package Comisiones_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + PluginSDK_D10R, + Comisiones_view, + Comisiones_controller; + +contains + uPluginComisiones in 'uPluginComisiones.pas' {PluginComisiones}; + +end. diff --git a/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.rc b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.res b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Comisiones/Plugin/Comisiones_plugin.res differ diff --git a/Source/Modulos/Comisiones/Plugin/Familias_plugin.bdsproj b/Source/Modulos/Comisiones/Plugin/Familias_plugin.bdsproj new file mode 100644 index 00000000..012abf9d --- /dev/null +++ b/Source/Modulos/Comisiones/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/Comisiones/Plugin/Familias_plugin.dpk b/Source/Modulos/Comisiones/Plugin/Familias_plugin.dpk new file mode 100644 index 00000000..14300abe --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/Familias_plugin.dpk @@ -0,0 +1,42 @@ +package Familias_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Familias_model, + Familias_controller, + Familias_view, + PluginSDK_D10R; + +contains + uPluginFamilias in 'uPluginFamilias.pas'; + +end. diff --git a/Source/Modulos/Comisiones/Plugin/Familias_plugin.res b/Source/Modulos/Comisiones/Plugin/Familias_plugin.res new file mode 100644 index 00000000..86c94e6a Binary files /dev/null and b/Source/Modulos/Comisiones/Plugin/Familias_plugin.res differ diff --git a/Source/Modulos/Comisiones/Plugin/uPluginComisiones.dfm b/Source/Modulos/Comisiones/Plugin/uPluginComisiones.dfm new file mode 100644 index 00000000..129ef1f5 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/uPluginComisiones.dfm @@ -0,0 +1,128 @@ +object PluginComisiones: TPluginComisiones + OldCreateOrder = True + DefaultAction = actComisiones + Description = 'Comisiones' + ModuleMenu = MainMenu + ModuleName = 'Comisiones' + 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 + F80000000970485973000017120000171201679FD2520000040C4944415478DA + B5957F6C136518C7BF776D474BC7D87061A011815981753211E6D86AA5B86548 + 6AC409129C4AB6C13637C5312331D1EC17E8D044A3C1A066C384986804FF984A + C6C284C5316B9C9190A1123061D1D4C8A4CEBA75EDF5DADEBDBEEFF576F3E0A6 + 4EC39B5C9EF7C7F5F93CCFF77D9E2B4708C1F51C1C0374F57D775D2865F7E672 + 1A802E944DB66649C98A55E7B24CD78024510B0239419473599620C9CC12CD2A + EFD2E7A1AA173074B2430F60CE84B1515C38D6819FFABB100E8711B2656059F1 + 83C82B7D1C66EB5CD589EA9048DA9C304B1DB020D87CCB4E03404C8CE0DC7BAF + 401EFC14C188802B13131815A2088405DC555E83BB1F69024C56257296D1FE4F + 2C86D2D47AC6B0ADA6490FD8E471E2FCC031F80F3D0F4E8C211815F1074760CE + 4C4360E40A02E35134BCD30BFB42A71A359391CAC164236A4612418224652AAF + 6DD6031E589783939DAD183DF53E623C0FD3DC5464396EC26D8EF908FEF63B3E + EEFA02DE9A362C2A2CA7B7C02B0E5F3D6E35CC60873B88C7EA5AF480FB29A0FB + B50624C6CEC1E15C8C797366C36EE311098561E109FA3E3F8B1B8BAAE1703F0A + 99E39568272F95699F9093DA4F66B2FDA9563DC0EB5E81237B2B9099F2335CF7 + E4420C472150FD63542E330FF4F67E8DC5F7ED418E7B1B9584532B8B5D2A93E5 + AFCE65055CF1F45E3D60A36B390ED697D032BA04EFA6B5B05BAC8846449868F4 + 6121840F8E0C207F4B33567B77508938254A69527B96851AF924B8AA619F1EB0 + A16819DE6EAAC2455F0F4A3DB7232F671EE2B13862721C8367FCF8D27711DE96 + 37915FB0999633BB03597964B53C596F10552E6AB0B3F12A4069A10343A77DF8 + B6A51319F6286C8541983244042E110883E9E0641BB23B1AB16481538BB8ED40 + B7E125EFAE2C46CD332FEA01C505B762A0F12DDC70E617088910A2EB4790B626 + 0EA17B0EECDF6781F0669C77A5206F5725D2AC193ABDB52E26C93DE6B3F6D976 + 3D60FD9A6C9CCE7F12E9B367C124F2204502D272A9DA275211B94CB34002E1F1 + 187EA877604359A5D2682F1DEC31CC60D7760FEAF6ECD7033CABB3712ABF0EA9 + 560BEC9C192455866916609E30438C4B082712D8F8BADFD0E1375987B4BB206A + 45D53FF7B21EE05EB514C7EFACC67C9B1D36B30929BC89B613AD16DACDA29480 + 65730F16969461A9EB0D0CFB762B8E2F0F9F05867F4467DFAF38DCB4EE5A72C9 + 8929802B6F09BEEAFE0CFEC12188C110402B88C940EB14B289C302773AB203EF + 2ACEAE1ECDED4F4C0BD600852B17A9B52D4F75A8046DAD94243D5FE9AF3494A9 + 625FFF357B87FBA3531914386F563FC1C94A4836D1148C7E4031FEE1DA19C944 + A15B35406BFB817FFC875A953982EA15438632D168A797E8DF0C5FDB2D0FBB5C + CB8F1A9EF92E1842E9B8632600F2B7F250BD8D7E37A30CA8393A4DA45B29E0A3 + FF05F8AFE34FB2402F1C4138F79E0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actComisiones: TAction + Category = 'Comisiones' + Caption = 'Liquidaciones de comisiones' + ImageIndex = 0 + OnExecute = actComisionesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Ventas' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object Comisiones1: TMenuItem + Tag = 19000 + Action = actComisiones + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002514944415478DA + 8D925F4853511CC7BFF7DE4DBD6E33B799A3425C8533D2F025C55C98FDC1021F + 667F1C542CA2724421A307090A155F828242F065680F3129E80F4C16120E1B89 + 4E9A302CED41211FCC10DB5AD3AE77F7DE6DEC740B1C14BBD5F7E51C0EE77CCE + E7777E872284603389B59877FEE540EBD2B8173CCF8363F5A83CDA8A9A66078C + 5B4D147284DA0424A5C4CCACE7EE5226E4B3C51302221B1B880922A2BC80BA73 + 4E1C3CDBF5C96834942B023E8CFBC8F2C35BA0A424E2A284358A40555284E86A + 04D1EF225C6E3FCC55F5942260D4DD4D62AF1F2349D360B66861AAD8014B4529 + E25FBF61D83B8916672FEA6CD79501C3F73A487A7D16155566187485D0B03412 + 1C0F354D10783383ED0DED38D4D6A10C18EA729092BCCFB0365643E2450872FD + 49B91C150DF8FDD3309FE844B3FD9A32E0FEE5260261112DB67A68D405101312 + 18F9765EE0F0E4E9046ACF74E394F3E65F009D0EB2107C85E6A67DA8D96B402A + 994232934228BC8CA9E0025A7AFA613F7D551930351A70CDF50CF6E93522D803 + 71307A09D145592A540C2AC362F7C08DA163B58D17140123CE077DC6F08A4B48 + 73100FAFA2687F0AC2880EEC9EB7508AB56789CA027C95974871613E18890669 + 1050544DC0AD076075DE06B6ED8218EC4778EC1D06035FE0BE733C3BCF025E58 + 2E126D811A1A4A05A2CD80C907185D0463651C3ECE4DE634683F62B267019E9D + E74929AB01AB62904733A041217DD2F7FF063ECFF0C472E8FDBC14E7AE40EE40 + 465E36EA5760299BFEB5F19F06B912EC2D27B90C7E1E941FF0F96F5D5000B4C9 + C3B33F0D1E8D8BD9FFF003405736B02FCE0FFF0000000049454E44AE426082} + 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/Comisiones/Plugin/uPluginComisiones.pas b/Source/Modulos/Comisiones/Plugin/uPluginComisiones.pas new file mode 100644 index 00000000..bdd0f0c7 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/uPluginComisiones.pas @@ -0,0 +1,74 @@ +unit uPluginComisiones; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCComisiones = interface(IInterface) + ['{B6E222C6-F526-40D7-A80D-63117B0586E7}'] + end; + + TPluginComisiones = class(TModuleController, IMCComisiones) + actComisiones: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Comisiones1: TMenuItem; + N1: TMenuItem; + procedure actComisionesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uComisionesController, uBizComisiones, uComisionesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginComisiones.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginComisiones.actComisionesExecute(Sender: TObject); +var + AComisionesController : IComisionesController; + AComisiones : IBizComisiones; +begin + AComisionesController := TComisionesController.Create; + AComisiones := (AComisionesController.BuscarTodos as IBizComisiones); + AComisionesController.VerTodos(AComisiones); +end; + +constructor TPluginComisiones.Create(AOwner: TComponent); +begin + inherited; + uComisionesViewRegister.RegisterViews; +end; + +destructor TPluginComisiones.Destroy; +begin + uComisionesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginComisiones); + +finalization + UnRegisterModuleClass(TPluginComisiones); + +end. diff --git a/Source/Modulos/Comisiones/Plugin/uPluginFamilias.dfm b/Source/Modulos/Comisiones/Plugin/uPluginFamilias.dfm new file mode 100644 index 00000000..2c5b0ba3 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/uPluginFamilias.dfm @@ -0,0 +1,81 @@ +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' + ImageIndex = 0 + OnExecute = actFamiliasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + 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/Comisiones/Plugin/uPluginFamilias.pas b/Source/Modulos/Comisiones/Plugin/uPluginFamilias.pas new file mode 100644 index 00000000..67e8fd46 --- /dev/null +++ b/Source/Modulos/Comisiones/Plugin/uPluginFamilias.pas @@ -0,0 +1,74 @@ +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; + N1: 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/Comisiones/Reports/uRptComisiones_Server.dfm b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm new file mode 100644 index 00000000..fb77dd2d --- /dev/null +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm @@ -0,0 +1,1022 @@ +object RptComisiones: TRptComisiones + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Comisiones + Left = 264 + Top = 72 + end + object tbl_Comisiones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + 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 = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES_COMISIONES_DET_FAC' + SQL = + 'select'#10' COMISIONES_LIQUIDADAS.FECHA AS FECHA_COMISION,'#10' ' + + ' COMISIONES_LIQUIDADAS.REFERENCIA AS REFERENCIA_COMISION,'#10' ' + + ' COMISIONES_LIQUIDADAS.DESCRIPCION,'#10' COMISIONES_LIQUIDA' + + 'DAS.IMPORTE_TOTAL,'#10#10' V_AGENTES_COMISIONES_DET_FAC.ID_EMPRE' + + 'SA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, COALESCE(EMPRESAS.RAZON' + + '_SOCIAL, EMPRESAS.NOMBRE) as RAZON_SOCIAL,'#10' EMPRESAS.CALLE' + + ' as CALLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' ' + + ' EMPRESAS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POST' + + 'AL as CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESA' + + 'S.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGIN' + + 'A_WEB, EMPRESAS.REGISTRO_MERCANTIL,'#10#10' V_AGENTES_COMISIONES' + + '_DET_FAC.ID_AGENTE, CONTACTOS1.NOMBRE as AGENTE,'#10' V_AGENTE' + + 'S_COMISIONES_DET_FAC.ID_FACTURA,'#10' V_AGENTES_COMISIONES_DET' + + '_FAC.ID_COMISION_LIQUIDADA,'#10' V_AGENTES_COMISIONES_DET_FAC.' + + 'FECHA,'#10' V_AGENTES_COMISIONES_DET_FAC.REFERENCIA,'#10' V_' + + 'AGENTES_COMISIONES_DET_FAC.SITUACION,'#10' V_AGENTES_COMISIONE' + + 'S_DET_FAC.ID_CLIENTE,'#10' CONTACTOS2.NOMBRE as CLIENTE,'#10' ' + + ' V_AGENTES_COMISIONES_DET_FAC.ID_PROVEEDOR,'#10' CONTACTOS3.N' + + 'OMBRE as PROVEEDOR,'#10' V_AGENTES_COMISIONES_DET_FAC.COMISION' + + ','#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMPO' + + 'RTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORT' + + 'E_COMISION) as IMPORTE_COMISION'#10' '#10#10'from V_AGENTES_COMISION' + + 'ES_DET_FAC'#10'LEFT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUID' + + 'ADAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LE' + + 'FT JOIN EMPRESAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.I' + + 'D_EMPRESA'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_A' + + 'GENTES_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACT' + + 'OS2 ON (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)' + + #10'LEFT JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_CO' + + 'MISIONES_DET_FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_F' + + 'AC.ID_COMISION_LIQUIDADA IS NOT NULL)'#10'GROUP BY 1, 2, 3, 4, 5, 6,' + + ' 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23' + + ', 24, 25, 26, 27, 28, 29'#10'ORDER BY 1' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_COMISION' + TableField = 'REFERENCIA_COMISION' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'AGENTE' + TableField = 'AGENTE' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'CLIENTE' + TableField = 'CLIENTE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'PROVEEDOR' + TableField = 'PROVEEDOR' + end + item + DatasetField = 'COMISION' + TableField = 'COMISION' + end + item + DatasetField = 'IMPORTE_COMISIONABLE' + TableField = 'IMPORTE_COMISIONABLE' + end + item + DatasetField = 'IMPORTE_COMISION' + TableField = 'IMPORTE_COMISION' + end + item + DatasetField = 'FECHA_COMISION' + TableField = 'FECHA_COMISION' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + 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> + end> + Name = 'InformeComisiones' + Fields = < + item + Name = 'FECHA_COMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTRATO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39185.834399409720000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '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 Memo26OnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{' + ' if ( <> '#39#39') then' + ' Memo26.Visible := True' + ' else' + ' Memo26.Visible := False;' + ' }' + 'end;' + '' + 'BEGIN' + '' + '' + 'END.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end> + Variables = < + item + Name = ' Fechas' + Value = Null + end + item + Name = 'FechaIni' + Value = 'sdadsasd' + end + item + Name = 'FechaFin' + Value = 'asdasdasdad' + end> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end +end diff --git a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas new file mode 100644 index 00000000..9c4cc623 --- /dev/null +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas @@ -0,0 +1,114 @@ +unit uRptComisiones_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; + +type + TRptComisiones = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Comisiones: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarComision(const AComisionID : Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schReportClient_Intf; + +const + rptComision = 'InfComisiones.fr3'; + + { Dataset names for schReport } + ds_InformeComisiones = 'InformeComisiones'; + +{ TRptComision } + + +procedure TRptComisiones.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptComisiones.GenerarComision(const AComisionID : Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +var + dsMaster: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeComisiones,[], [], False); + with dsMaster.Where do + begin + if not VarIsNull(AComisionID) then + begin + AddOperator(opAND); + OpenBraket; + AddText('V_AGENTES_COMISIONES_DET_FAC.' + fld_InformeComisionesID_COMISION_LIQUIDADA + ' = ' + VarToStr(AComisionID)); + CloseBraket; + end; + + if not VarIsNull(AAgenteID) then + begin + AddOperator(opAND); + OpenBraket; + AddText('V_AGENTES_COMISIONES_DET_FAC.' + fld_InformeComisionesID_AGENTE + ' = ' + VarToStr(AAgenteID)); + CloseBraket; + end; + + if (Length(FechaIni) > 0) + and (Length(FechaFin) > 0) then + begin + AddOperator(opAND); + OpenBraket; + + AddText('COMISIONES_LIQUIDADAS.FECHA between ''' + StringReplace(FechaIni, '/', '.', [rfReplaceAll]) + ''' and ''' + StringReplace(FechaFin, '/', '.', [rfReplaceAll]) + ''''); + CloseBraket; + end; + end; + + dsMaster.Open; + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Comisiones, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptComision, True); + frxReport.Variables['FechaIni'] := QuotedStr(FechaIni); + frxReport.Variables['FechaFin'] := QuotedStr(FechaFin); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. diff --git a/Source/Modulos/Comisiones/Servidor/serverlog.txt b/Source/Modulos/Comisiones/Servidor/serverlog.txt new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.dfm b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.dfm new file mode 100644 index 00000000..f1e6de1b --- /dev/null +++ b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.dfm @@ -0,0 +1,1476 @@ +object srvComisiones: TsrvComisiones + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schComisiones + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Comisiones_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCRIPCION' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'Facturas_Comision_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Facturas_Comision_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Facturas_Comision_IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'Facturas_Comision_IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'Comisiones_Detalles_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_AGENTE' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'AGENTE' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SITUACION' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'Comisiones_Detalles_COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'COMISION' + Alignment = taLeftJustify + end + item + Name = 'V_Detalles_Facturas_Comision_ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_COMISION_LIQUIDADA' + Alignment = taLeftJustify + end + item + Name = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'Facturas_Comision_ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_COMISION_LIQUIDADA' + Alignment = taLeftJustify + end + item + Name = 'Facturas_Comision_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'V_Detalles_Facturas_Comision_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Facturas_Comision_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end> + Left = 150 + Top = 22 + end + object schComisiones: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'ID_COMISION' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES_COMISIONES_DET_FAC' + SQL = + 'select V_AGENTES_COMISIONES_DET_FAC.ID_EMPRESA,'#10' V_AGENTES' + + '_COMISIONES_DET_FAC.ID_AGENTE, CONTACTOS1.NOMBRE as AGENTE,'#10' ' + + ' V_AGENTES_COMISIONES_DET_FAC.ID_FACTURA,'#10' V_AGENTES_COM' + + 'ISIONES_DET_FAC.ID_COMISION_LIQUIDADA,'#10' V_AGENTES_COMISION' + + 'ES_DET_FAC.FECHA,'#10' V_AGENTES_COMISIONES_DET_FAC.REFERENCIA' + + ','#10' V_AGENTES_COMISIONES_DET_FAC.SITUACION,'#10' V_AGENTE' + + 'S_COMISIONES_DET_FAC.ID_CLIENTE,'#10' CONTACTOS2.NOMBRE as CLI' + + 'ENTE,'#10' V_AGENTES_COMISIONES_DET_FAC.ID_PROVEEDOR,'#10' C' + + 'ONTACTOS3.NOMBRE as PROVEEDOR,'#10' V_AGENTES_COMISIONES_DET_F' + + 'AC.COMISION,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOT' + + 'AL)as IMPORTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_' + + 'FAC.IMPORTE_COMISION) as IMPORTE_COMISION'#10#10'from V_AGENTES_COMISI' + + 'ONES_DET_FAC'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = ' + + 'V_AGENTES_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONT' + + 'ACTOS2 ON (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIEN' + + 'TE)'#10'LEFT JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES' + + '_COMISIONES_DET_FAC.ID_PROVEEDOR)'#10'WHERE V_AGENTES_COMISIONES_DET' + + '_FAC.ID_COMISION_LIQUIDADA = :ID_COMISION'#10'GROUP BY 1, 2, 3, 4, 5' + + ', 6, 7, 8, 9, 10, 11, 12, 13' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'AGENTE' + TableField = 'AGENTE' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'PROVEEDOR' + TableField = 'PROVEEDOR' + end + item + DatasetField = 'COMISION' + TableField = 'COMISION' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'CLIENTE' + TableField = 'CLIENTE' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'IMPORTE_COMISIONABLE' + TableField = 'IMPORTE_COMISIONABLE' + end + item + DatasetField = 'IMPORTE_COMISION' + TableField = 'IMPORTE_COMISION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end> + end> + Name = 'Facturas_Comision' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISIONABLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + + 'ESA = :EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'COMISIONES_LIQUIDADAS' + SQL = + 'SELECT '#10' COMISIONES_LIQUIDADAS.ID, COMISIONES_LIQUIDADAS.ID_E' + + 'MPRESA,'#10' COMISIONES_LIQUIDADAS.REFERENCIA, COMISIONES_LIQUIDA' + + 'DAS.ID_AGENTE,'#10' COMISIONES_LIQUIDADAS.DESCRIPCION, COMISIONES' + + '_LIQUIDADAS.FECHA,'#10' COMISIONES_LIQUIDADAS.IMPORTE_TOTAL, COMI' + + 'SIONES_LIQUIDADAS.USUARIO,'#10' CONTACTOS.NOMBRE'#10'FROM COMISIONES_' + + 'LIQUIDADAS'#10'LEFT JOIN CONTACTOS ON (CONTACTOS.ID = COMISIONES_LIQ' + + 'UIDADAS.ID_AGENTE)' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'Comisiones' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'COMISIONES_LIQUIDADAS' + SQL = + 'SELECT'#10' COMISIONES_LIQUIDADAS.ID, COMISIONES_LIQUIDADAS.ID_EM' + + 'PRESA,'#10' COMISIONES_LIQUIDADAS.REFERENCIA, COMISIONES_LIQUIDAD' + + 'AS.ID_AGENTE,'#10' COMISIONES_LIQUIDADAS.DESCRIPCION, COMISIONES_' + + 'LIQUIDADAS.FECHA,'#10' COMISIONES_LIQUIDADAS.IMPORTE_TOTAL, COMIS' + + 'IONES_LIQUIDADAS.USUARIO,'#10' CONTACTOS.NOMBRE'#10'FROM COMISIONES_L' + + 'IQUIDADAS'#10'LEFT JOIN CONTACTOS ON (CONTACTOS.ID = COMISIONES_LIQU' + + 'IDADAS.ID_AGENTE)'#10'WHERE COMISIONES_LIQUIDADAS.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'Comisiones_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES_COMISIONES_DET_FAC' + SQL = + 'select V_AGENTES_COMISIONES_DET_FAC.ID_EMPRESA,'#10' V_AGENTES' + + '_COMISIONES_DET_FAC.ID_AGENTE, CONTACTOS1.NOMBRE as AGENTE,'#10' ' + + ' V_AGENTES_COMISIONES_DET_FAC.ID_FACTURA,'#10' V_AGENTES_COM' + + 'ISIONES_DET_FAC.ID_COMISION_LIQUIDADA,'#10' V_AGENTES_COMISION' + + 'ES_DET_FAC.FECHA,'#10' V_AGENTES_COMISIONES_DET_FAC.REFERENCIA' + + ','#10' V_AGENTES_COMISIONES_DET_FAC.SITUACION,'#10' V_AGENTE' + + 'S_COMISIONES_DET_FAC.ID_CLIENTE,'#10' CONTACTOS2.NOMBRE as CLI' + + 'ENTE,'#10' V_AGENTES_COMISIONES_DET_FAC.ID_PROVEEDOR,'#10' C' + + 'ONTACTOS3.NOMBRE as PROVEEDOR,'#10' V_AGENTES_COMISIONES_DET_F' + + 'AC.COMISION,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOT' + + 'AL) as IMPORTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET' + + '_FAC.IMPORTE_COMISION) as IMPORTE_COMISION'#10#10'from V_AGENTES_COMIS' + + 'IONES_DET_FAC'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID =' + + ' V_AGENTES_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CON' + + 'TACTOS2 ON (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIE' + + 'NTE)'#10'LEFT JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTE' + + 'S_COMISIONES_DET_FAC.ID_PROVEEDOR)'#10'GROUP BY 1, 2, 3, 4, 5, 6, 7,' + + ' 8, 9, 10, 11, 12, 13' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'AGENTE' + TableField = 'AGENTE' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'PROVEEDOR' + TableField = 'PROVEEDOR' + end + item + DatasetField = 'COMISION' + TableField = 'COMISION' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'CLIENTE' + TableField = 'CLIENTE' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'IMPORTE_COMISIONABLE' + TableField = 'IMPORTE_COMISIONABLE' + end + item + DatasetField = 'IMPORTE_COMISION' + TableField = 'IMPORTE_COMISION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end> + end> + Name = 'V_Detalles_Facturas_Comision' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'V_Detalles_Facturas_Comision_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_FECHA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Facturas_Comision_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Comisiones_Detalles_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'ID_EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'UPDATE FACTURAS_CLIENTE'#10'SET ID_COMISION_LIQUIDADA = :ID_COMISION' + + '_LIQUIDADA'#10'WHERE (ID = :ID_FACTURA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Facturas_Comisiones' + end + item + Params = < + item + Name = 'OLD_ID_FACTURA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'UPDATE FACTURAS_CLIENTE'#10'SET ID_COMISION_LIQUIDADA = Null'#10'WHERE (' + + 'ID = :OLD_ID_FACTURA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Facturas_Comision' + end + item + Params = < + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_FACTURA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'UPDATE FACTURAS_CLIENTE'#10'SET ID_COMISION_LIQUIDADA = :ID_COMISION' + + '_LIQUIDADA'#10'WHERE (ID = :OLD_ID_FACTURA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Facturas_Comision' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'COMISIONES_LIQUIDADAS' + SQL = + 'INSERT'#10' INTO COMISIONES_LIQUIDADAS'#10' (ID, ID_EMPRESA, REFEREN' + + 'CIA, ID_AGENTE, DESCRIPCION, FECHA, IMPORTE_TOTAL, USUARIO)'#10' VA' + + 'LUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :ID_AGENTE, :DESCRIPCIO' + + 'N, :FECHA, :IMPORTE_TOTAL, :USUARIO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Comisiones' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'COMISIONES_LIQUIDADAS' + SQL = + 'DELETE '#10' FROM'#10' COMISIONES_LIQUIDADAS'#10' WHERE'#10' (ID = :OLD_' + + 'ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Comisiones' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'COMISIONES_LIQUIDADAS' + SQL = + 'UPDATE COMISIONES_LIQUIDADAS'#10' SET '#10' ID = :ID, '#10' ID_EMPRES' + + 'A = :ID_EMPRESA,'#10' REFERENCIA = :REFERENCIA,'#10' ID_AGENTE = :' + + 'ID_AGENTE,'#10' DESCRIPCION = :DESCRIPCION, '#10' FECHA = :FECHA, ' + + #10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' USUARIO = :USUARIO'#10' WH' + + 'ERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Comisiones' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Comisiones' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Comisiones' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert Facturas_Comision' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Facturas_Comision' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Comisiones' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Comisiones' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Facturas_Comision' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Facturas_Comision' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Facturas_Comision' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Facturas_Comision' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Comisiones' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Comisiones' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object bpComisiones: TDABusinessProcessor + Schema = schComisiones + InsertCommandName = 'Insert_Comisiones' + DeleteCommandName = 'Delete_Comisiones' + UpdateCommandName = 'Update_Comisiones' + RefreshDatasetName = 'Comisiones_Refresh' + ReferencedDataset = 'Comisiones' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + end + object bpFacturas_Comision: TDABusinessProcessor + Schema = schComisiones + InsertCommandName = 'Insert_Facturas_Comisiones' + DeleteCommandName = 'Delete_Facturas_Comision' + UpdateCommandName = 'Update_Facturas_Comision' + ReferencedDataset = 'Facturas_Comision' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 80 + end +end diff --git a/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas new file mode 100644 index 00000000..786ba72d --- /dev/null +++ b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas @@ -0,0 +1,86 @@ +unit srvComisiones_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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDAInterfaces, Variants; + +type + { TsrvComisiones } + TsrvComisiones = class(TDARemoteService, IsrvComisiones) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + bpComisiones: TDABusinessProcessor; + bpFacturas_Comision: TDABusinessProcessor; + schComisiones: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(Sender: TObject); + { IsrvComisiones methods } + protected + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schComisionesClient_Intf, uRestriccionesUsuarioUtils, + uBizComisionesServer, uRptComisiones_Server; + +procedure Create_srvComisiones(out anInstance : IUnknown); +begin + anInstance := TsrvComisiones.Create(NIL); +end; + +{ srvComisiones } +procedure TsrvComisiones.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvComisiones.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; + bpComisiones.BusinessRulesID := BIZ_SERVER_COMISIONES; +end; + +function TsrvComisiones.GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; +var + AReportGenerator : TRptComisiones; +begin + AReportGenerator := TRptComisiones.Create(nil); + try + Result := AReportGenerator.GenerarComision(AComisionID, FechaIni, FechaFin, AAgenteID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvComisiones.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +initialization + TROClassFactory.Create('srvComisiones', Create_srvComisiones, TsrvComisiones_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Comisiones/Views/Comisiones_view.bdsproj b/Source/Modulos/Comisiones/Views/Comisiones_view.bdsproj new file mode 100644 index 00000000..1504cbb8 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/Comisiones_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Comisiones_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/Comisiones/Views/Comisiones_view.dpk b/Source/Modulos/Comisiones/Views/Comisiones_view.dpk new file mode 100644 index 00000000..9a6a2c9b --- /dev/null +++ b/Source/Modulos/Comisiones/Views/Comisiones_view.dpk @@ -0,0 +1,95 @@ +package Comisiones_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, + dbrtl, + vcldb, + dsnap, + adortl, + GUIBase, + DataAbstract_D10, + Comisiones_controller, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvAppFrmD10R, + JvSystemD10R, + PngComponentsD10, + PNG_D10, + cxIntlPrintSys3D10, + tbx_d10, + tb2k_d10, + JvStdCtrlsD10R, + JvPageCompsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + dxLayoutControlD10, + Contactos_controller, + Contactos_model, + frx10, + fs10, + fqb100, + bdertl, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb; + +contains + uComisionesViewRegister in 'uComisionesViewRegister.pas', + uViewComisiones in 'uViewComisiones.pas' {frViewComisiones: TFrame}, + uEditorComisiones in 'uEditorComisiones.pas' {fEditorComisiones: TfEditorComisiones}, + uViewComision in 'uViewComision.pas' {frViewComision: TFrame}, + uEditorComision in 'uEditorComision.pas' {fEditorComision: TfEditorComision}, + uViewFacturasComision in 'uViewFacturasComision.pas' {frViewFacturasComision: TFrame}, + uEditorComisionesReport in 'uEditorComisionesReport.pas' {fEditorComisionesReport: TfEditorComisionesReport}; + +end. diff --git a/Source/Modulos/Comisiones/Views/Comisiones_view.rc b/Source/Modulos/Comisiones/Views/Comisiones_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Views/Comisiones_view.res b/Source/Modulos/Comisiones/Views/Comisiones_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Comisiones/Views/Comisiones_view.res differ diff --git a/Source/Modulos/Comisiones/Views/serverlog.txt b/Source/Modulos/Comisiones/Views/serverlog.txt new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Comisiones/Views/uComisionesViewRegister.pas b/Source/Modulos/Comisiones/Views/uComisionesViewRegister.pas new file mode 100644 index 00000000..ff9419ee --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uComisionesViewRegister.pas @@ -0,0 +1,27 @@ +unit uComisionesViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorComisionesReport, uEditorComisiones, uEditorComision; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorComisiones, 'EditorComisiones'); + EditorRegistry.RegisterClass(TfEditorComision, 'EditorComision'); + EditorRegistry.RegisterClass(TfEditorComisionesPreview, 'EditorComisionesPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorComisiones); + EditorRegistry.UnRegisterClass(TfEditorComision); + EditorRegistry.UnRegisterClass(TfEditorComisionesPreview); +end; + +end. diff --git a/Source/Modulos/Comisiones/Views/uEditorComision.dfm b/Source/Modulos/Comisiones/Views/uEditorComision.dfm new file mode 100644 index 00000000..4c8d45ce --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComision.dfm @@ -0,0 +1,1805 @@ +inherited fEditorComision: TfEditorComision + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de liquidaci'#243'n de comisiones' + ClientHeight = 544 + ClientWidth = 611 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 619 + ExplicitHeight = 578 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 611 + Caption = 'Liquidaci'#243'n de comisiones' + ExplicitWidth = 611 + inherited Image1: TImage + Left = 584 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000040C4944415478DAB5957F6C13 + 6518C7BF776D474BC7D87061A011815981753211E6D86AA5B865486AC409129C + 4AB6C13637C5312331D1EC17E8D044A3C1A066C384986804FF984AC6C284C531 + 6B9C9190A1123061D1D4C8A4CEBA75EDF5DADEBDBEEFF576F3E0A64EC39B5C9E + F7C7F5F93CCFF77D9E2B4708C1F51C1C0374F57D775D2865F7E6721A802E944D + B66649C98A55E7B24CD78024510B0239419473599620C9CC12CD2AEFD2E7A1AA + 173074B2430F60CE84B1515C38D6819FFABB100E8711B2656059F183C82B7D1C + 66EB5CD589EA9048DA9C304B1DB020D87CCB4E03404C8CE0DC7BAF401EFC14C1 + 88802B13131815A2088405DC555E83BB1F69024C56257296D1FE4F2C86D2D47A + C6B0ADA6490FD8E471E2FCC031F80F3D0F4E8C211815F1074760CE4C4360E40A + 02E35134BCD30BFB42A71A359391CAC164236A4612418224652AAF6DD6031E58 + 9783939DAD183DF53E623C0FD3DC5464396EC26D8EF908FEF63B3EEEFA02DE9A + 362C2A2CA7B7C02B0E5F3D6E35CC60873B88C7EA5AF480FB29A0FBB50624C6CE + C1E15C8C797366C36EE311098561E109FA3E3F8B1B8BAAE1703F0A99E3956827 + 2F95699F9093DA4F66B2FDA9563DC0EB5E81237B2B9099F2335CF7E4420C4721 + 50FD63542E330FF4F67E8DC5F7ED418E7B1B9584532B8B5D2A93E5AFCE65055C + F1F45E3D60A36B390ED697D032BA04EFA6B5B05BAC8846449868F46121840F8E + 0C207F4B33567B77508938254A69527B96851AF924B8AA619F1EB0A16819DE6E + AAC2455F0F4A3DB7232F671EE2B13862721C8367FCF8D27711DE9637915FB099 + 9633BB03597964B53C596F10552E6AB0B3F12A4069A10343A77DF8B6A51319F6 + 286C8541983244042E110883E9E0641BB23B1AB16481538BB8ED40B7E125EFAE + 2C46CD332FEA01C505B762A0F12DDC70E617088910A2EB4790B6260EA17B0EEC + DF6781F0669C77A5206F5725D2AC193ABDB52E26C93DE6B3F6D9763D60FD9A6C + 9CCE7F12E9B367C124F2204502D272A9DA275211B94CB34002E1F1187EA87760 + 4359A5D2682F1DEC31CC60D7760FEAF6ECD7033CABB3712ABF0EA9560BEC9C19 + 2455866916609E30438C4B082712D8F8BADFD0E1375987B4BB206A45D53FF7B2 + 1EE05EB514C7EFACC67C9B1D36B30929BC89B613AD16DACDA2948065730F1696 + 9461A9EB0D0CFB762B8E2F0F9F05867F4467DFAF38DCB4EE5A72C98929802B6F + 09BEEAFE0CFEC12188C110402B88C940EB14B289C302773AB203EF2ACEAE1ECD + ED4F4C0BD600852B17A9B52D4F75A8046DAD94243D5FE9AF3494A9625FFF357B + 87FBA3531914386F563FC1C94A4836D1148C7E4031FEE1DA19C944A15B35406B + FB817FFC875A953982EA15438632D168A797E8DF0C5FDB2D0FBB5CCB8F1A9EF9 + 2E1842E9B8632600F2B7F250BD8D7E37A30CA8393A4DA45B29E0A3FF05F8AFE3 + 4FB2402F1C4138F79E0000000049454E44AE426082} + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 611 + ExplicitWidth = 611 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 611 + 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 + Caption = 'Volcar a disco...' + ImageIndex = 22 + end + end + end + end + inherited pgPaginas: TPageControl + Width = 611 + Height = 403 + MultiLine = True + ExplicitWidth = 611 + ExplicitHeight = 403 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 603 + ExplicitHeight = 375 + inline frViewComision1: TfrViewComision + Left = 0 + Top = 0 + Width = 603 + Height = 127 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 603 + ExplicitHeight = 127 + inherited dxLayoutControlComision: TdxLayoutControl + Width = 603 + Height = 127 + ExplicitWidth = 603 + ExplicitHeight = 127 + DesignSize = ( + 603 + 127) + inherited edtFecha: TcxDBDateEdit + Left = 354 + ExplicitLeft = 354 + end + end + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 127 + Width = 603 + Height = 248 + Align = alClient + ParentBackground = True + TabOrder = 1 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = frViewComision1.dxLayoutOfficeLookAndFeel1 + inline frViewFacturasComision1: TfrViewFacturasComision + Left = 22 + Top = 30 + Width = 607 + Height = 265 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 30 + ExplicitWidth = 607 + ExplicitHeight = 265 + inherited cxGrid: TcxGrid + Width = 607 + Height = 240 + ExplicitWidth = 607 + ExplicitHeight = 240 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasComision1.cxGridViewIMPORTE_COMISION + end> + DataController.Summary.OnAfterSummary = frViewFacturasComision1cxGridViewDataControllerSummaryAfterSummary + end + end + inherited ToolBar1: TToolBar + Width = 607 + ExplicitWidth = 607 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + inherited ToolButton3: TToolButton + ExplicitWidth = 98 + end + inherited ToolButton8: TToolButton + ExplicitWidth = 99 + end + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = + 'Facturas asociadas a la liquidaci'#243'n desglosadas por agente y pro' + + 'veedor' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'New Item' + ShowCaption = False + Control = frViewFacturasComision1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 525 + Width = 611 + Panels = < + item + Width = 200 + end> + ExplicitTop = 525 + ExplicitWidth = 611 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 479 + Width = 611 + 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 = 479 + ExplicitWidth = 611 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 611 + ExplicitWidth = 611 + inherited Bevel1: TBevel + Left = 92 + Top = 91 + Width = 73 + ExplicitLeft = 92 + ExplicitTop = 91 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 305 + Top = 10 + Height = 30 + ExplicitLeft = 305 + ExplicitTop = 10 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 417 + Top = 91 + Width = 192 + ExplicitLeft = 417 + ExplicitTop = 91 + ExplicitWidth = 192 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 163 + Top = 111 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 163 + ExplicitTop = 111 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 488 + Top = 37 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 488 + ExplicitTop = 37 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 418 + Top = 111 + Style.IsFontAssigned = True + ExplicitLeft = 418 + ExplicitTop = 111 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 92 + Top = 111 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 111 + end + inherited edtIVA: TcxDBSpinEdit + Left = 417 + Top = 37 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 417 + ExplicitTop = 37 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 417 + Top = 10 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 417 + ExplicitTop = 10 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 417 + Top = 64 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 417 + ExplicitTop = 64 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 488 + Top = 64 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 488 + ExplicitTop = 64 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 92 + Top = 10 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 10 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 92 + Top = 138 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 138 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 92 + Top = 37 + DataBinding.DataField = '' + ExplicitLeft = 92 + ExplicitTop = 37 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 157 + Top = 37 + ExplicitLeft = 157 + ExplicitTop = 37 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 92 + Top = 64 + DataBinding.DataField = '' + ExplicitLeft = 92 + ExplicitTop = 64 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 96 + Top = 168 + 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 +end diff --git a/Source/Modulos/Comisiones/Views/uEditorComision.pas b/Source/Modulos/Comisiones/Views/uEditorComision.pas new file mode 100644 index 00000000..18933bf2 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComision.pas @@ -0,0 +1,301 @@ +unit uEditorComision; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewComision, 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, uBizComisiones, + uIEditorComision, uComisionesController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid, + uViewDetallesGenerico, uViewFacturasComision, dxLayoutControl, cxControls, + uViewTotales; + +type + TfEditorComision = class(TfEditorDBItem, IEditorComision) + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + frViewComision1: TfrViewComision; + frViewFacturasComision1: TfrViewFacturasComision; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + frViewTotales1: TfrViewTotales; + 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 dsDataTableDataChange(Sender: TObject; Field: TField); + procedure frViewFacturasComision1cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + protected + FController : IComisionesController; + FComision: IBizComisiones; + FViewComision : IViewComision; + + function GetController : IComisionesController; + procedure SetController (const Value : IComisionesController); virtual; + function GetComision: IBizComisiones; virtual; + procedure SetComision(const Value: IBizComisiones); virtual; + function GetViewComision: IViewComision; + procedure SetViewComision(const Value: IViewComision); + property ViewComision: IViewComision read GetViewComision write SetViewComision; + + 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; + + public + property Comision: IBizComisiones read GetComision write SetComision; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils, uDataModuleUsuarios, uDialogUtils, uCustomEditor, + uDataModuleBase; + +{ +******************************* TfEditorComision ******************************* +} +function TfEditorComision.GetComision: IBizComisiones; +begin + Result := FComision; +end; + +function TfEditorComision.GetController: IComisionesController; +begin + Result := FController; +end; +{ +function TfEditorComision.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 := frViewRecibosComision1.Modified; + Result := bCambiado; +end; +} +function TfEditorComision.GetViewComision: IViewComision; +begin + Result := FViewComision; +end; + +procedure TfEditorComision.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + bEsNuevo := False; + + ShowHourglassCursor; +// frViewRecibosComision1.OnViewModified := Nil; + //frViewDetallesFacturaCliente1.SaveGridStatus; // Para guardar estado del grid +// frViewDetallesFacturaCliente1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FComision.EsNuevo; + FController.Guardar(FComision); + + finally +// frViewDetallesFacturaCliente1.EndUpdate; +// frViewDetallesFacturaCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + ShowInfoMessage('La liquidación de comisiones se ha dado de alta con el código ' + FComision.REFERENCIA); + Modified := False; +// frViewRecibosComision1.Modified := False; +// frViewRecibosComision1.OnViewModified := OnRecibosChanged; +end; + +procedure TfEditorComision.ImprimirInterno; +begin + inherited; + FController.Print(FComision); +end; + +procedure TfEditorComision.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosComision1.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorComision.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosComision1.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorComision.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(Comision) then + begin + if Comision.EsNuevo then + FTitulo := 'Nueva liquidación de comisiones' + else + FTitulo := 'Liquidación de comisiones'; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorComision.PrevisualizarInterno; +begin + inherited; + FController.Preview(FComision); +end; + +procedure TfEditorComision.SetComision(const Value: IBizComisiones); +begin + FComision := Value; + if Assigned(FComision) then + begin + dsDataTable.DataTable := FComision.DataTable; + frViewFacturasComision1.Comision := FComision; +// frViewRecibosComision1.OnViewModified := OnRecibosChanged; + end + else + begin + dsDataTable.DataTable := Nil; + frViewFacturasComision1.Comision := Nil; +// frViewRecibosComision1.OnViewModified := Nil; + end; + + if Assigned(FViewComision) then + FViewComision.Comision := FComision; + + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; +end; + +procedure TfEditorComision.SetController(const Value: IComisionesController); +begin + FController := Value; + if Assigned(FController) then + begin + frViewFacturasComision1.Controller := FController; + end; +end; + +procedure TfEditorComision.SetViewComision(const Value: IViewComision); +begin + FViewComision := Value; + + if Assigned(FViewComision) and Assigned(Comision) then + begin + FViewComision.Comision := Comision; +// FViewComision.Controller := (FController as IComisionesController); + end; +end; + +procedure TfEditorComision.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewComision) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Comision) then + raise Exception.Create('No hay ningún almacén asignado'); + + Comision.DataTable.Active := True; +end; + +procedure TfEditorComision.frViewFacturasComision1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); +Var + AImporteTotal: Variant; +begin + inherited; + + AImporteTotal := ASender.FooterSummaryValues[1]; + + if Assigned(FController) then + FController.AsignarImporteTotal(Comision, AImporteTotal); +end; + +destructor TfEditorComision.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorComision.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + ActualizarEstadoEditor; +end; + +procedure TfEditorComision.actAnadirRecibosExecute(Sender: TObject); +begin + inherited; +// HayCambios := FController.ElegirRecibosCliente(Comision) OR HayCambios; +end; + +procedure TfEditorComision.actEliminarReciboExecute(Sender: TObject); +begin + inherited; +// FController.EliminarReciboCliente(Comision); +// HayCambios := True; +end; +{ +procedure TfEditorComision.CerrarInterno; +begin + frViewRecibosComision1.OnViewModified := Nil; + inherited; +end; +} +constructor TfEditorComision.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + FViewComision := frViewComision1; +end; + +procedure TfEditorComision.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewComision := NIL; + FComision := NIL; +end; + +procedure TfEditorComision.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar esta liquidación de comisiones?', 'Atención', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FComision) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Comisiones/Views/uEditorComisiones.dfm b/Source/Modulos/Comisiones/Views/uEditorComisiones.dfm new file mode 100644 index 00000000..1d560057 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisiones.dfm @@ -0,0 +1,1492 @@ +inherited fEditorComisiones: TfEditorComisiones + Left = 489 + Top = 325 + Caption = 'Lista de liquidaciones de comisiones' + ClientWidth = 820 + ExplicitWidth = 828 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 820 + Caption = 'Lista de liquidaciones de comisiones' + ExplicitWidth = 820 + inherited Image1: TImage + Left = 793 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000040C4944415478DAB5957F6C13 + 6518C7BF776D474BC7D87061A011815981753211E6D86AA5B865486AC409129C + 4AB6C13637C5312331D1EC17E8D044A3C1A066C384986804FF984AC6C284C531 + 6B9C9190A1123061D1D4C8A4CEBA75EDF5DADEBDBEEFF576F3E0A64EC39B5C9E + F7C7F5F93CCFF77D9E2B4708C1F51C1C0374F57D775D2865F7E6721A802E944D + B66649C98A55E7B24CD78024510B0239419473599620C9CC12CD2AEFD2E7A1AA + 173074B2430F60CE84B1515C38D6819FFABB100E8711B2656059F183C82B7D1C + 66EB5CD589EA9048DA9C304B1DB020D87CCB4E03404C8CE0DC7BAF401EFC14C1 + 88802B13131815A2088405DC555E83BB1F69024C56257296D1FE4F2C86D2D47A + C6B0ADA6490FD8E471E2FCC031F80F3D0F4E8C211815F1074760CE4C4360E40A + 02E35134BCD30BFB42A71A359391CAC164236A4612418224652AAF6DD6031E58 + 9783939DAD183DF53E623C0FD3DC5464396EC26D8EF908FEF63B3EEEFA02DE9A + 362C2A2CA7B7C02B0E5F3D6E35CC60873B88C7EA5AF480FB29A0FBB50624C6CE + C1E15C8C797366C36EE311098561E109FA3E3F8B1B8BAAE1703F0A99E3956827 + 2F95699F9093DA4F66B2FDA9563DC0EB5E81237B2B9099F2335CF7E4420C4721 + 50FD63542E330FF4F67E8DC5F7ED418E7B1B9584532B8B5D2A93E5AFCE65055C + F1F45E3D60A36B390ED697D032BA04EFA6B5B05BAC8846449868F46121840F8E + 0C207F4B33567B77508938254A69527B96851AF924B8AA619F1EB0A16819DE6E + AAC2455F0F4A3DB7232F671EE2B13862721C8367FCF8D27711DE9637915FB099 + 9633BB03597964B53C596F10552E6AB0B3F12A4069A10343A77DF8B6A51319F6 + 286C8541983244042E110883E9E0641BB23B1AB16481538BB8ED40B7E125EFAE + 2C46CD332FEA01C505B762A0F12DDC70E617088910A2EB4790B6260EA17B0EEC + DF6781F0669C77A5206F5725D2AC193ABDB52E26C93DE6B3F6D9763D60FD9A6C + 9CCE7F12E9B367C124F2204502D272A9DA275211B94CB34002E1F1187EA87760 + 4359A5D2682F1DEC31CC60D7760FEAF6ECD7033CABB3712ABF0EA9560BEC9C19 + 2455866916609E30438C4B082712D8F8BADFD0E1375987B4BB206A45D53FF7B2 + 1EE05EB514C7EFACC67C9B1D36B30929BC89B613AD16DACDA2948065730F1696 + 9461A9EB0D0CFB762B8E2F0F9F05867F4467DFAF38DCB4EE5A72C98929802B6F + 09BEEAFE0CFEC12188C110402B88C940EB14B289C302773AB203EF2ACEAE1ECD + ED4F4C0BD600852B17A9B52D4F75A8046DAD94243D5FE9AF3494A9625FFF357B + 87FBA3531914386F563FC1C94A4836D1148C7E4031FEE1DA19C944A15B35406B + FB817FFC875A953982EA15438632D168A797E8DF0C5FDB2D0FBB5CCB8F1A9EF9 + 2E1842E9B8632600F2B7F250BD8D7E37A30CA8393A4DA45B29E0A3FF05F8AFE3 + 4FB2402F1C4138F79E0000000049454E44AE426082} + ExplicitLeft = 516 + end + end + inherited TBXDock: TTBXDock + Width = 820 + ExplicitWidth = 820 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 552 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 260 + 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 + Caption = 'Volcar a disco...' + ImageIndex = 25 + end + end + end + end + inherited StatusBar: TJvStatusBar + Width = 820 + ExplicitWidth = 820 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 23 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + 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 + 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 + 610000000970485973000017120000171201679FD252000002514944415478DA + 8D925F4853511CC7BFF7DE4DBD6E33B799A3425C8533D2F025C55C98FDC1021F + 667F1C542CA2724421A307090A155F828242F065680F3129E80F4C16120E1B89 + 4E9A302CED41211FCC10DB5AD3AE77F7DE6DEC740B1C14BBD5F7E51C0EE77CCE + E7777E872284603389B59877FEE540EBD2B8173CCF8363F5A83CDA8A9A66078C + 5B4D147284DA0424A5C4CCACE7EE5226E4B3C51302221B1B880922A2BC80BA73 + 4E1C3CDBF5C96834942B023E8CFBC8F2C35BA0A424E2A284358A40555284E86A + 04D1EF225C6E3FCC55F5942260D4DD4D62AF1F2349D360B66861AAD8014B4529 + E25FBF61D83B8916672FEA6CD79501C3F73A487A7D16155566187485D0B03412 + 1C0F354D10783383ED0DED38D4D6A10C18EA729092BCCFB0365643E2450872FD + 49B91C150DF8FDD3309FE844B3FD9A32E0FEE5260261112DB67A68D405101312 + 18F9765EE0F0E4E9046ACF74E394F3E65F009D0EB2107C85E6A67DA8D96B402A + 994232934228BC8CA9E0025A7AFA613F7D551930351A70CDF50CF6E93522D803 + 71307A09D145592A540C2AC362F7C08DA163B58D17140123CE077DC6F08A4B48 + 73100FAFA2687F0AC2880EEC9EB7508AB56789CA027C95974871613E18890669 + 1050544DC0AD076075DE06B6ED8218EC4778EC1D06035FE0BE733C3BCF025E58 + 2E126D811A1A4A05A2CD80C907185D0463651C3ECE4DE634683F62B267019E9D + E74929AB01AB62904733A041217DD2F7FF063ECFF0C472E8FDBC14E7AE40EE40 + 465E36EA5760299BFEB5F19F06B912EC2D27B90C7E1E941FF0F96F5D5000B4C9 + C3B33F0D1E8D8BD9FFF003405736B02FCE0FFF0000000049454E44AE426082} + 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 + 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] + Caption = 'Volcar a disco...' + ImageIndex = 25 + end + end +end diff --git a/Source/Modulos/Comisiones/Views/uEditorComisiones.pas b/Source/Modulos/Comisiones/Views/uEditorComisiones.pas new file mode 100644 index 00000000..a96c4289 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisiones.pas @@ -0,0 +1,165 @@ +unit uEditorComisiones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewComisiones, uBizComisiones, 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, uIEditorComisiones, uEditorGridBase, + JvComponentBase, uViewGridBase, uComisionesController, JvExComCtrls, + JvStatusBar; + +type + TfEditorComisiones = class(TfEditorGridBase, IEditorComisiones) + N4: TMenuItem; + Volcaradisco1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + private + FComisiones: IBizComisiones; + FController : IComisionesController; + protected + function GetComisiones: IBizComisiones; + procedure SetComisiones(const Value: IBizComisiones); + function GetController : IComisionesController; virtual; + procedure SetController (const Value : IComisionesController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; 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 Comisiones: IBizComisiones read GetComisiones write SetComisiones; + property Controller : IComisionesController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleComisiones, uDataModuleUsuarios, + //uEditorRemesaCliente, + uEditorDBBase, cxGrid, cxGridCustomTableView; //, uListaComisiones; + +{$R *.dfm} + +{ +****************************** TfEditorComisiones ******************************* +} +procedure TfEditorComisiones.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Comisiones) then + raise Exception.Create('No hay ningún RemesaCliente asignado'); + + Comisiones.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorComisiones.GetComisiones: IBizComisiones; +begin + Result := FComisiones; +end; + +procedure TfEditorComisiones.ImprimirInterno; +begin +// inherited; + FController.Print(Nil); +end; + +function TfEditorComisiones.GetController: IComisionesController; +begin + Result := FController; +end; + +procedure TfEditorComisiones.ModificarInterno; +begin + inherited; + FController.Ver(Comisiones); +end; + +procedure TfEditorComisiones.NuevoInterno; +begin + inherited; + FController.Anadir(Comisiones); + FController.Ver(Comisiones); +end; + +procedure TfEditorComisiones.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de liquidaciones de comisiones - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorComisiones.PrevisualizarInterno; +begin +// inherited; + FController.Preview(Nil); +end; + +procedure TfEditorComisiones.SetComisiones(const Value: IBizComisiones); +begin + FComisiones := Value; + dsDataTable.DataTable := FComisiones.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewComisiones).Comisiones := Comisiones; +end; + +procedure TfEditorComisiones.SetController(const Value: IComisionesController); +begin + FController := Value; +end; + +destructor TfEditorComisiones.Destroy; +begin + FComisiones := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorComisiones.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar esta liquidación de comisiones?', '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(Comisiones) then + actRefrescar.Execute; + end; +end; + +procedure TfEditorComisiones.AsignarVista; +begin + ViewGrid := CreateView(TfrViewComisiones) as IViewComisiones; +end; + +constructor TfEditorComisiones.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +end. + diff --git a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm new file mode 100644 index 00000000..e5677fe1 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm @@ -0,0 +1,169 @@ +inherited fEditorComisionesPreview: TfEditorComisionesPreview + Caption = 'Previsualizar la factura' + ExplicitWidth = 658 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitWidth = 650 + inherited Image1: TImage + Left = 623 + ExplicitLeft = 623 + end + end + inherited StatusBar: TJvStatusBar + ExplicitTop = 439 + ExplicitWidth = 650 + end + object pnlFiltrar: TTBXDockablePanel [3] + Left = 0 + Top = 102 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 84 + DockMode = dmCannotFloat + DockPos = 88 + DockRow = 2 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 3 + ExplicitWidth = 128 + object Label1: TLabel + Left = 261 + Top = 50 + Width = 17 + Height = 13 + Caption = 'y el' + end + object Label2: TLabel + Left = 10 + Top = 16 + Width = 117 + Height = 13 + Caption = 'Liquidaciones del agente' + end + object Label3: TLabel + Left = 10 + Top = 48 + Width = 103 + Height = 13 + Caption = 'Liquidaciones entre el' + end + object edtFechaFiltro1: TcxDateEdit + Left = 133 + Top = 46 + 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 = 285 + Top = 46 + 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 Button1: TBitBtn + Left = 435 + Top = 43 + Width = 163 + Height = 25 + Caption = 'Quitar filtro y ver todo' + TabOrder = 3 + OnClick = Button1Click + 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 + object cbAgentes: TcxLookupComboBox + Left = 133 + Top = 13 + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsAgentes + Properties.OnEditValueChanged = OnAgentesChange + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 273 + end + end + inherited EditorActionList: TActionList + Left = 8 + Top = 88 + end + inherited SmallImages: TPngImageList + Left = 35 + Top = 88 + end + inherited LargeImages: TPngImageList + Left = 59 + Top = 88 + end + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end + object dsAgentes: TDADataSource + Left = 144 + Top = 96 + end +end diff --git a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas new file mode 100644 index 00000000..5df790f3 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas @@ -0,0 +1,131 @@ +unit uEditorComisionesReport; + +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, uIEditorComisionesPreview, + JvExComCtrls, JvStatusBar, StdCtrls, Buttons, cxRadioGroup, cxMaskEdit, + cxDropDownEdit, cxCalendar, cxControls, cxContainer, cxEdit, cxTextEdit, + TBXDkPanels, cxGraphics, DB, uDADataTable, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, uIDataModuleComisionesReport; + +type + TfEditorComisionesPreview = class(TfEditorPreview, IEditorComisionesPreview) + pnlFiltrar: TTBXDockablePanel; + Label1: TLabel; + edtFechaFiltro1: TcxDateEdit; + edtFechaFiltro2: TcxDateEdit; + Button1: TBitBtn; + Label2: TLabel; + Label3: TLabel; + cbAgentes: TcxLookupComboBox; + dsAgentes: TDADataSource; + procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); + procedure OnAgentesChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button1Click(Sender: TObject); + protected + FDataModule : IDataModuleComisionesReport; + function GetDataModule : IDataModuleComisionesReport; + procedure SetDataModule (const Value : IDataModuleComisionesReport); + + procedure RefrescarInterno; override; + public + property DataModule : IDataModuleComisionesReport read GetDataModule write SetDataModule; + end; + + +implementation +{$R *.dfm} + +uses uROTypes, uBizContactos, uAgentesController; + +procedure TfEditorComisionesPreview.Button1Click(Sender: TObject); +begin + cbAgentes.Properties.OnEditValueChanged := Nil; + cbAgentes.Clear; + cbAgentes.Properties.OnEditValueChanged := OnAgentesChange; + + edtFechaFiltro1.Properties.OnEditValueChanged := Nil; + edtFechaFiltro2.Properties.OnEditValueChanged := Nil; + edtFechaFiltro1.Clear; + edtFechaFiltro2.Clear; + edtFechaFiltro1.Properties.OnEditValueChanged := edtFechaFiltro1PropertiesEditValueChanged; + edtFechaFiltro2.Properties.OnEditValueChanged := edtFechaFiltro1PropertiesEditValueChanged; + + RefrescarInterno; +end; + +procedure TfEditorComisionesPreview.OnAgentesChange(Sender: TObject); +begin + inherited; + RefrescarInterno; +end; + +procedure TfEditorComisionesPreview.RefrescarInterno; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(Null, edtFechaFiltro1.Text, edtFechaFiltro2.Text, cbAgentes.EditValue); + try + Report.PreviewPages.Clear; + LoadFromStream(AStream); + Report.Preview.Refresh; + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorComisionesPreview.SetDataModule(const Value: IDataModuleComisionesReport); +begin + FDataModule := Value; +end; + +procedure TfEditorComisionesPreview.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then + begin + if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then + begin + ShowMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaFiltro1.SetFocus; + end + else + RefrescarInterno; + end; +end; + +procedure TfEditorComisionesPreview.FormShow(Sender: TObject); +var + AAgentesController: IAgentesController; + AAgentes: IBizAgente; +begin + inherited; + try + AAgentesController := TAgentesController.Create; + AAgentes := (AAgentesController.BuscarTodos as IBizAgente); + AAgentes.DataTable.Active := True; + dsAgentes.DataTable := AAgentes.DataTable; + finally + AAgentesController := Nil; + AAgentes := Nil; + end; +end; + +function TfEditorComisionesPreview.GetDataModule: IDataModuleComisionesReport; +begin + Result := FDataModule; +end; + +end. diff --git a/Source/Modulos/Comisiones/Views/uEditorFamilias.dfm b/Source/Modulos/Comisiones/Views/uEditorFamilias.dfm new file mode 100644 index 00000000..c086a627 --- /dev/null +++ b/Source/Modulos/Comisiones/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/Comisiones/Views/uEditorFamilias.pas b/Source/Modulos/Comisiones/Views/uEditorFamilias.pas new file mode 100644 index 00000000..d1675de5 --- /dev/null +++ b/Source/Modulos/Comisiones/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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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; + +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/Comisiones/Views/uEditorRemesasCliente.dfm b/Source/Modulos/Comisiones/Views/uEditorRemesasCliente.dfm new file mode 100644 index 00000000..5734b752 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorRemesasCliente.dfm @@ -0,0 +1,1520 @@ +inherited fEditorRemesasCliente: TfEditorRemesasCliente + Left = 489 + Top = 325 + Caption = 'Lista de remesas de cobro' + ClientWidth = 820 + ExplicitWidth = 828 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 820 + Caption = 'Lista de remesas de cobro' + 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 = 662 + object TBXSeparatorItem17: TTBXSeparatorItem [12] + end + object TBXItem37: TTBXItem [13] + Action = actVolcarDisco + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 820 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem38: TTBXItem + Action = actVolcarDisco + end + end + end + end + inherited StatusBar: TJvStatusBar + Width = 820 + ExplicitTop = 425 + 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 +end diff --git a/Source/Modulos/Comisiones/Views/uEditorRemesasCliente.pas b/Source/Modulos/Comisiones/Views/uEditorRemesasCliente.pas new file mode 100644 index 00000000..99692a2c --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorRemesasCliente.pas @@ -0,0 +1,195 @@ +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; + +type + TfEditorRemesasCliente = class(TfEditorGridBase, IEditorRemesasCliente) + actVolcarDisco: TAction; + TBXItem37: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + N4: TMenuItem; + Volcaradisco1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + procedure actVolcarDiscoUpdate(Sender: TObject); + 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; + + + //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, + //uEditorRemesaCliente, + uEditorDBBase, uBizFamilias, uFamiliasController, + uBancaElectronicaController, + cxGrid, cxGridCustomTableView; //, uListaRemesasCliente; + +{$R *.dfm} + +{ +****************************** TfEditorRemesasCliente ******************************* +} +procedure TfEditorRemesasCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesasCliente) then + raise Exception.Create('No hay ningún RemesaCliente asignado'); + + RemesasCliente.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRemesasCliente.GetRemesasCliente: IBizRemesaCliente; +begin + Result := FRemesasCliente; +end; + +procedure TfEditorRemesasCliente.ImprimirInterno; +begin + inherited; + FController.Print(RemesasCliente); +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.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de remesas de cobro - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRemesasCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(RemesasCliente); +end; + +procedure TfEditorRemesasCliente.SetRemesasCliente(const Value: IBizRemesaCliente); +begin + FRemesasCliente := Value; + dsDataTable.DataTable := FRemesasCliente.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRemesasCliente).RemesasCliente := RemesasCliente; +end; + +procedure TfEditorRemesasCliente.SetController(const Value: IRemesasClienteController); +begin + FController := Value; +end; + +destructor TfEditorRemesasCliente.Destroy; +begin + FRemesasCliente := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorRemesasCliente.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar esta remesa de cobro?', '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(RemesasCliente) then + actRefrescar.Execute; + end; +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. + diff --git a/Source/Modulos/Comisiones/Views/uViewComision.dfm b/Source/Modulos/Comisiones/Views/uViewComision.dfm new file mode 100644 index 00000000..5983e1a4 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewComision.dfm @@ -0,0 +1,190 @@ +inherited frViewComision: TfrViewComision + Width = 451 + Height = 130 + Align = alClient + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlComision: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 130 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitHeight = 304 + DesignSize = ( + 451 + 130) + object eReferencia: TcxDBTextEdit + Left = 85 + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 164 + end + object eDescripcion: TcxDBTextEdit + Left = 85 + Top = 84 + DataBinding.DataField = 'DESCRIPCION' + DataBinding.DataSource = dsDataTable + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + 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 = 108 + end + object edtFecha: TcxDBDateEdit + Left = 275 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataTable + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + object cbAgente: TcxDBLookupComboBox + Left = 85 + Top = 57 + DataBinding.DataField = 'ID_AGENTE' + DataBinding.DataSource = dsDataTable + Properties.GridMode = True + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsAgentes + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + 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 = 2 + Width = 319 + end + object dxLayoutControlComisionGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlComisionGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos de la liquidaci'#243'n de comisiones' + object dxLayoutControlComisionGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlComisionItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlComisionItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlComisionItem1: TdxLayoutItem + Caption = 'Agente:' + Control = cbAgente + ControlOptions.ShowBorder = False + end + object dxLayoutControlComisionItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlComisionGroup3: 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 dsAgentes: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/Modulos/Comisiones/Views/uViewComision.pas b/Source/Modulos/Comisiones/Views/uViewComision.pas new file mode 100644 index 00000000..6a83cdce --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewComision.pas @@ -0,0 +1,99 @@ +unit uViewComision; + +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, + uComisionesController, cxSpinEdit, cxCurrencyEdit, + uBizComisiones, cxCalendar, + dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox; + +type + IViewComision = interface(IViewBase) + ['{5EA82BD9-550C-426F-AEBB-A48B396CB4B4}'] + function GetComision: IBizComisiones; + procedure SetComision(const Value: IBizComisiones); + property Comision: IBizComisiones read GetComision write SetComision; + end; + + TfrViewComision = class(TfrViewBase, IViewComision) + dsDataTable: TDADataSource; + eReferencia: TcxDBTextEdit; + eDescripcion: TcxDBTextEdit; + edtFecha: TcxDBDateEdit; + dxLayoutControlComision: TdxLayoutControl; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControlComisionItem1: TdxLayoutItem; + cbAgente: TcxDBLookupComboBox; + dsAgentes: TDADataSource; + procedure CustomViewShow(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + + protected + FComision: IBizComisiones; + function GetComision: IBizComisiones; + procedure SetComision(const Value: IBizComisiones); virtual; + public + property Comision: IBizComisiones read GetComision write SetComision; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleUsuarios, uAgentesController, uBizContactos; + + +{ TfrViewComisions } + +{ +******************************* TfrViewComisions ******************************** +} + +procedure TfrViewComision.CustomViewDestroy(Sender: TObject); +begin + dsAgentes.DataTable := Nil; + inherited; +end; + +procedure TfrViewComision.CustomViewShow(Sender: TObject); +Var + AAgentes: IBizContacto; + FAgentesController: IAgentesController; +begin + inherited; + try + FAgentesController := TAgentesController.Create; + AAgentes := FAgentesController.BuscarTodos; + AAgentes.DataTable.Active := True; + dsAgentes.DataTable := AAgentes.DataTable; + finally + AAgentes := Nil; + FAgentesController := Nil; + end; +end; + +function TfrViewComision.GetComision: IBizComisiones; +begin + Result := FComision; +end; + +procedure TfrViewComision.SetComision(const Value: IBizComisiones); +begin + FComision := Value; + + if Assigned(FComision) then + dsDataTable.DataTable := FComision.DataTable + else + dsDataTable.DataTable := NIL; +end; + +end. + diff --git a/Source/Modulos/Comisiones/Views/uViewComisiones.dfm b/Source/Modulos/Comisiones/Views/uViewComisiones.dfm new file mode 100644 index 00000000..e71b3ecc --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewComisiones.dfm @@ -0,0 +1,156 @@ +inherited frViewComisiones: TfrViewComisiones + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + 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.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end + item + Format = '0 liquidaciones' + Kind = skCount + Column = cxGridViewREFERENCIA + end> + OptionsBehavior.PullFocusing = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 130 + end + object cxGridViewAGENTE: TcxGridDBColumn + Caption = 'Agente' + DataBinding.FieldName = 'NOMBRE' + Width = 77 + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + Width = 71 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Width = 97 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 165 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + 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 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + object PngImageList: 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 = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000001274944415478DA + DD923D4A035110C7FFAB60A208795B585865636795A4538CF0F4089A3EC113E4 + 0E5E20E00536584AD2682382BBA085A0984DC0D6B72FA0310AD9599068045947 + B052F015A97460986198F9315F5692249844AC7F08B02C0BDBA725C96E95557E + 857D56B7B979EEFFC8FF1E287BEB5208515FB49D3C5B2420B455802985CE2B50 + 3BD83AF34D00773957A8AC391B78E1E23E29DC50805069BC29344E76BA551320 + 5C2DCAEC92C88128C21D425C33208A34665A421FEF761D2360A558C8CE4160C8 + 1DDC33E096343477906A6574B0D73302DC944045D8027D068C10631C119EDA31 + E6BD4CE362BF671C41CE46A80FED383F1284078A31AD80670F9D054AD72E0F07 + BF2FF1F38CE5664912C555DEBC1C10214DF0DF69EC5E1D3D9ACF38F123FD3DC0 + 07A932AEE15E52559F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000E54944415478DADD902172C3301045BF4F10C3320B9645B0ACEE0D7C + 83F806F5110C0BD51B6C99A160E1C2C085850B0D372C655965DCA28C3D9DB27C + CD8E44FEDBFF55E19FAAEE104013B77EF53ED100B3595967637A1B7813B098C7 + F8149E435DC3CE807C29F2943FD48C784ABC0520371FF64D83D377597FF201F8 + 28C899DE39D3B005D0AE8B0DB0FB3597143A2B98195EA3DA0248DBC67D79FF98 + B100682278857540224EF131BCD64BFF62363FE215540594C675C098728BB3F5 + 2184031C72DDAE1EFFC89EC85EE493D63FB1A81F526BA65D7808BDA8EE1C0611 + B969BE09F8ABEE007001C1D97F1131BF40440000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 160 + Top = 32 + Bitmap = {} + end +end diff --git a/Source/Modulos/Comisiones/Views/uViewComisiones.pas b/Source/Modulos/Comisiones/Views/uViewComisiones.pas new file mode 100644 index 00000000..e1f59c9e --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewComisiones.pas @@ -0,0 +1,83 @@ +unit uViewComisiones; + +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, uBizComisiones, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg; + +type + IViewComisiones = interface(IViewGrid) + ['{5E6A5CE4-EEF5-4CCB-B944-D028C5391676}'] + function GetComisiones: IBizComisiones; + procedure SetComisiones(const Value: IBizComisiones); + property Comisiones: IBizComisiones read GetComisiones write SetComisiones; + end; + + TfrViewComisiones = class(TfrViewGrid, IViewComisiones) + PngImageList: TPngImageList; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewAGENTE: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + protected + FComisiones: IBizComisiones; + function GetComisiones: IBizComisiones; virtual; + procedure SetComisiones(const Value: IBizComisiones); virtual; + public + property Comisiones: IBizComisiones read GetComisiones write SetComisiones; + end; + +implementation + +uses uDataModuleComisiones; + + +{$R *.dfm} + +{ TfrViewComisiones } + +{ +******************************* TfrViewComisiones ******************************* +} +function TfrViewComisiones.GetComisiones: IBizComisiones; +begin + Result := FComisiones; +end; + +procedure TfrViewComisiones.SetComisiones(const Value: IBizComisiones); +begin + FComisiones := Value; + if Assigned(FComisiones) then + dsDataSource.DataTable := FComisiones.DataTable; +end; + + +procedure TfrViewComisiones.cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); + ADone := True; +end; + +end. diff --git a/Source/Modulos/Comisiones/Views/uViewFacturasComision.dfm b/Source/Modulos/Comisiones/Views/uViewFacturasComision.dfm new file mode 100644 index 00000000..1dc4c208 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewFacturasComision.dfm @@ -0,0 +1,265 @@ +inherited frViewFacturasComision: TfrViewFacturasComision + 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 = 'ID_FACTURA;ID_PROVEEDOR' + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_COMISION + 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 + inherited cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = '' + end + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewID_AGENTE: TcxGridDBColumn + DataBinding.FieldName = 'ID_AGENTE' + Visible = False + end + object cxGridViewID_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'ID_FACTURA' + Visible = False + end + object cxGridViewID_COMISION_LIQUIDADA: TcxGridDBColumn + DataBinding.FieldName = 'ID_COMISION_LIQUIDADA' + Visible = False + end + object cxGridViewAGENTE: TcxGridDBColumn + Caption = 'Agente' + DataBinding.FieldName = 'AGENTE' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha factura' + DataBinding.FieldName = 'FECHA' + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n factura' + DataBinding.FieldName = 'SITUACION' + end + object cxGridViewID_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'ID_CLIENTE' + Visible = False + end + object cxGridViewCLIENTE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'CLIENTE' + end + object cxGridViewID_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PROVEEDOR' + Visible = False + end + object cxGridViewPROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'PROVEEDOR' + end + object cxGridViewIMPORTE_COMISIONABLE: TcxGridDBColumn + Caption = 'Importe comisionable' + DataBinding.FieldName = 'IMPORTE_COMISIONABLE' + end + object cxGridViewCOMISION: TcxGridDBColumn + Caption = 'Porcentaje' + DataBinding.FieldName = 'COMISION' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '0.0 %;-0.0 %' + Properties.MaxValue = 100.000000000000000000 + end + object cxGridViewIMPORTE_COMISION: TcxGridDBColumn + Caption = 'Importe comisi'#243'n' + DataBinding.FieldName = 'IMPORTE_COMISION' + 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/Comisiones/Views/uViewFacturasComision.pas b/Source/Modulos/Comisiones/Views/uViewFacturasComision.pas new file mode 100644 index 00000000..668698dc --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewFacturasComision.pas @@ -0,0 +1,190 @@ +unit uViewFacturasComision; + +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, uDataModuleComisiones, + uBizComisiones, uComisionesController, Grids, DBGrids, cxSpinEdit, + dxLayoutControl; + +type + IViewFacturasComision = interface + ['{9B698A4C-B38E-4279-918D-2AF64556B1FB}'] + function GetComision: IBizComisiones; + procedure SetComision(const Value: IBizComisiones); + property Comision: IBizComisiones read GetComision write SetComision; + + function GetController : IComisionesController; + procedure SetController (const Value : IComisionesController); + property Controller : IComisionesController read GetController write SetController; + end; + + TfrViewFacturasComision = class(TfrViewDetallesGenerico, IViewFacturasComision) + cxGridViewRecID: TcxGridDBColumn; + cxGridViewID_EMPRESA: TcxGridDBColumn; + cxGridViewID_AGENTE: TcxGridDBColumn; + cxGridViewAGENTE: TcxGridDBColumn; + cxGridViewID_FACTURA: TcxGridDBColumn; + cxGridViewID_COMISION_LIQUIDADA: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewID_CLIENTE: TcxGridDBColumn; + cxGridViewCLIENTE: TcxGridDBColumn; + cxGridViewID_PROVEEDOR: TcxGridDBColumn; + cxGridViewPROVEEDOR: TcxGridDBColumn; + cxGridViewCOMISION: TcxGridDBColumn; + cxGridViewIMPORTE_COMISIONABLE: TcxGridDBColumn; + cxGridViewIMPORTE_COMISION: TcxGridDBColumn; + actExpandir: TAction; + actContraer: TAction; + ToolButton3: TToolButton; + ToolButton8: TToolButton; + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actExpandirUpdate(Sender: TObject); + procedure actContraerUpdate(Sender: TObject); + protected + FHayCambios : Boolean; + FComision : IBizComisiones; + FController : IComisionesController; + + procedure AnadirInterno; override; + procedure EliminarInterno; override; + + function GetComision: IBizComisiones; + procedure SetComision(const Value: IBizComisiones); + + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; + + function GetController : IComisionesController; + procedure SetController (const Value : IComisionesController); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Comision: IBizComisiones read GetComision write SetComision; + property Controller : IComisionesController read GetController write SetController; + end; + + +implementation + +{$R *.dfm} + +uses + uCustomView; + +{ TfrViewFacturasComision } + +procedure TfrViewFacturasComision.actContraerExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Collapse(True); +end; + +procedure TfrViewFacturasComision.actContraerUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewFacturasComision.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0) + and (cxGridView.Controller.SelectedRows[0].HasCells)); +end; + +procedure TfrViewFacturasComision.actExpandirExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Expand(True); +end; + +procedure TfrViewFacturasComision.actExpandirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewFacturasComision.AnadirInterno; +begin + //inherited; // No hacer el comportamiento normal + if FController.ElegirFacturasComision(Comision) then + Modified := True; +end; + +constructor TfrViewFacturasComision.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; +end; + +procedure TfrViewFacturasComision.CustomViewShow(Sender: TObject); +begin + inherited; + cxGridView.OptionsSelection.MultiSelect := False; +end; + +destructor TfrViewFacturasComision.Destroy; +begin + inherited; +end; + +procedure TfrViewFacturasComision.EliminarInterno; +begin + if cxGridView.Controller.SelectedRowCount > 0 then + if cxGridView.Controller.SelectedRows[0].HasCells then +// ViewGrid._FocusedView.Controller.SelectedRecordCount + FController.EliminarFactura(Comision); + Modified := True; +end; + +function TfrViewFacturasComision.GetController: IComisionesController; +begin + Result := FController; +end; + +function TfrViewFacturasComision.GetModified: Boolean; +begin + Result := FHayCambios or inherited GetModified; +end; + +function TfrViewFacturasComision.GetComision: IBizComisiones; +begin + Result := FComision; +end; + +procedure TfrViewFacturasComision.SetController( + const Value: IComisionesController); +begin + FController := Value; +end; + +procedure TfrViewFacturasComision.SetModified(const Value: Boolean); +begin + FHayCambios := Value; + inherited; +end; + +procedure TfrViewFacturasComision.SetComision(const Value: IBizComisiones); +begin + FComision := Value; + FHayCambios := False; + if Assigned(FComision) then + dsDetalles.DataTable := FComision.Facturas.DataTable + else + dsDetalles.DataTable := NIL; + + actAnchoAutomatico.Execute; +end; + +end. diff --git a/Source/Modulos/Contactos/Contactos_Group.bdsgroup b/Source/Modulos/Contactos/Contactos_Group.bdsgroup new file mode 100644 index 00000000..407bea04 --- /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 00000000..c8f28340 --- /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/Controller/Contactos_controller.bdsproj b/Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj new file mode 100644 index 00000000..1cfc983f --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + 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 + + + + True + diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dpk b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk new file mode 100644 index 00000000..2f0b8b48 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk @@ -0,0 +1,78 @@ +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} +{%TogetherDiagram 'ModelSupport_Contactos_controller\default.txaPackage'} + +requires + rtl, + vcl, + DataAbstract_D10, + Base, + GUIBase, + Contactos_model, + Contactos_data, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + dsnap, + vcldb, + adortl; + +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', + uIEditorAgentes in 'View\uIEditorAgentes.pas', + uIEditorAgente in 'View\uIEditorAgente.pas', + uIEditorProveedor in 'View\uIEditorProveedor.pas', + uProveedoresController in 'uProveedoresController.pas', + uAgentesController in 'uAgentesController.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'; + +end. diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.drc b/Source/Modulos/Contactos/Controller/Contactos_controller.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.rc b/Source/Modulos/Contactos/Controller/Contactos_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.res b/Source/Modulos/Contactos/Controller/Contactos_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/Contactos_controller.res differ diff --git a/Source/Modulos/Contactos/Controller/ModelSupport_Contactos_controller/Contactos_controller.prjconfig b/Source/Modulos/Contactos/Controller/ModelSupport_Contactos_controller/Contactos_controller.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/ModelSupport_Contactos_controller/Contactos_controller.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Contactos/Controller/ModelSupport_Contactos_controller/default.txaPackage b/Source/Modulos/Contactos/Controller/ModelSupport_Contactos_controller/default.txaPackage new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas new file mode 100644 index 00000000..3640fd8f --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas @@ -0,0 +1,16 @@ +unit uIEditorAgente; + +interface + +uses + uIEditorContacto; + +type + IEditorAgente = interface(IEditorContacto) + ['{E8A9AF0B-1659-4DF1-B3C6-F672628080A9}'] + 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 00000000..b64c86b6 --- /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) + ['{74CB7BDE-9751-49E5-9AEC-C2E551DE1E0A}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas new file mode 100644 index 00000000..fda93ef7 --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorClientes.pas new file mode 100644 index 00000000..15940b3b --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorContacto.pas new file mode 100644 index 00000000..5615b02d --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorContactos.pas new file mode 100644 index 00000000..e0f6807d --- /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/uIEditorDireccionContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.pas new file mode 100644 index 00000000..8ac618c0 --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.pas new file mode 100644 index 00000000..5d7e6d40 --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.pas new file mode 100644 index 00000000..de3c3799 --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas new file mode 100644 index 00000000..c99cb9ed --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas @@ -0,0 +1,30 @@ +unit uIEditorElegirDireccionEntrega; + +interface + +uses + uBizDireccionesContacto, uGUIBase; + +type + IEditorElegirDireccionEntrega = interface + ['{AB909782-25E1-4715-B98A-EA62FB9DC03C}'] + function GetDireccion: IBizDireccionesContacto; + procedure SetDireccion(const Value: IBizDireccionesContacto); + property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion; + + 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/uIEditorElegirProveedores.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.pas new file mode 100644 index 00000000..597ed580 --- /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/uIEditorGruposCliente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas new file mode 100644 index 00000000..3fb6d37a --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorGruposCliente; + +interface + +uses + uEditorDBBase, uBizGruposCliente, uGruposClienteController; + +type + IEditorGruposCliente = interface(IEditorDBBase) + ['{7BF79417-A95C-41F3-96DE-707F2D6F29E3}'] + 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/uIEditorProveedor.pas b/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.pas new file mode 100644 index 00000000..accb45e7 --- /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.pas b/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.pas new file mode 100644 index 00000000..724a05fc --- /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.pas b/Source/Modulos/Contactos/Controller/uAgentesController.pas new file mode 100644 index 00000000..b0dc1706 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uAgentesController.pas @@ -0,0 +1,158 @@ +unit uAgentesController; + +interface + +uses + uCustomEditor, + uContactosController, uBizContactos, + uIEditorAgentes, uIEditorAgente, uIDataModuleContactos, uIDataModuleAgentes; + +type + IAgentesController = interface(IContactosController) + ['{23016B7A-1FDA-4092-ACE5-D27D3A50F236}'] + end; + + TAgentesController = class(TContactosController, IAgentesController) + protected + procedure AsignarID(AContacto: IBizContacto; const IDNuevo: Integer); 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(AContacto: IBizContacto): Boolean; override; + end; + +implementation + +uses + Windows, SysUtils, cxControls, Dialogs, uDataModuleAgentes, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf; + +{ TAgentesController } + +procedure TAgentesController.AsignarID(AContacto: IBizContacto; + const IDNuevo: Integer); +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + { Los datos de comisiones hay que comprobarlos siempre + tanto en inserción como en modificación. } + with (AContacto as IBizAgente) do + if Assigned(Comisiones) then + AsignarIDDetalles(AContacto, IDNuevo, Comisiones.DataTable); + + inherited; +end; + +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); + + if Assigned((Result as IBizAgente).Comisiones) then + DuplicarRegistros((AContacto as IBizAgente).Comisiones.DataTable, (Result as IBizAgente).Comisiones.DataTable, mdrTodos); +end; + +function TAgentesController.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 agente porque tiene documentos dados de alta (como liquidaciones de comisiones, asignado a un cliente, etc)', 'Atención', MB_ICONWARNING or MB_OK); + end; + end; +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; + +procedure TAgentesController.Ver(AContacto: IBizContacto); +var + AEditor : IEditorAgente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAgente', IEditorAgente, AEditor); + with AEditor do + begin + Contacto := AContacto; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TAgentesController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorAgentes; +begin + CreateEditor('EditorAgentes', IEditorAgentes, AEditor); + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas new file mode 100644 index 00000000..bb7b77ab --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uClientesController.pas @@ -0,0 +1,264 @@ +unit uClientesController; + +interface + +uses + uCustomEditor, + uContactosController, uBizContactos, uBizDireccionesContacto, + uIEditorClientes, uIEditorCliente, uIDataModuleContactos, uIDataModuleClientes, + uDireccionesContactoController; + +type + IClientesController = interface(IContactosController) + ['{AAC3C51A-37F7-4961-B39F-FBC6B6A2B0F1}'] + function BuscarTodosTiendaWeb: IBizCliente; + function TieneDatosBancarios(ACliente: IBizCliente) : Boolean; + function ElegirDireccionEntrega(ADirecciones: IBizDireccionesContacto; + AMensaje: String): IBizDireccionesContacto; + end; + + TClientesController = class(TContactosController, IClientesController) + protected + FDireccionesController : IDireccionesContactoController; + procedure AsignarID(AContacto: IBizContacto; const IDNuevo: Integer); override; + 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 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(ADirecciones: IBizDireccionesContacto; + AMensaje: String): IBizDireccionesContacto; + end; + +implementation + +uses + Forms, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, + uIEditorElegirClientes, uIEditorElegirDireccionEntrega; + +{ TClientesController } + +procedure TClientesController.AsignarID(AContacto: IBizContacto; + const IDNuevo: Integer); +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + { Los datos de descuentos hay que comprobarlos siempre + tanto en inserción como en modificación. } + with (AContacto as IBizCliente) do + if Assigned(Descuentos) then + AsignarIDDetalles(AContacto, IDNuevo, Descuentos.DataTable); + + inherited; +end; + +function TClientesController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleClientes).GetItem(ID); + 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; + +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); + try + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ContactosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TClientesController.ElegirDireccionEntrega(ADirecciones: IBizDireccionesContacto; + AMensaje: String): IBizDireccionesContacto; +var + AEditor : IEditorElegirDireccionEntrega; +begin + Result := NIL; + + CreateEditor('EditorElegirDireccionEntrega', IEditorElegirDireccionEntrega, AEditor); + try + with AEditor do + begin + Direccion := ADirecciones; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := DireccionSeleccionada; + Release; + end; + finally + AEditor := NIL; + end; +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; + +function TClientesController.TieneDatosBancarios( + ACliente: IBizCliente): Boolean; +begin + Result := False; + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (TieneDatosBancarios)'); + + if 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 dirección de e-mail en el campo ''Correo de trabajo''' + + #10#13 + #10#13 + + 'Por favor, indique una dirección 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 dirección de e-mail en el campo ''Correo de trabajo''' + + #10#13 + #10#13 + + 'Por favor, indique una dirección o desactive el acceso a la tienda.'); + end; + end; + + if Result and (AContacto.Direcciones.RecordCount = 0) then + if (ShowConfirmMessage('El cliente no tiene direcciones asociadas', + AContacto.NOMBRE + ' no tiene ninguna dirección de envío dada de alta, ' + #10#13 + + '¿Desea utilizar el domicilio fiscal para dar de alta una dirección 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; + ShowHourglassCursor; + try + CreateEditor('EditorCliente', IEditorCliente, AEditor); + with AEditor do + begin + Contacto := AContacto; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TClientesController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorClientes; +begin + CreateEditor('EditorClientes', IEditorClientes, AEditor); + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uContactosController.pas b/Source/Modulos/Contactos/Controller/uContactosController.pas new file mode 100644 index 00000000..976d4256 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uContactosController.pas @@ -0,0 +1,385 @@ +unit uContactosController; + +interface + + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizContactosDatosBancarios, uIDataModuleContactos; + +type + IContactosController = interface + ['{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 ExtraerSeleccionados(AContactos: IBizContacto) : IBizContacto; + end; + + TContactosController = class(TInterfacedObject, IContactosController) + protected + FDataModule : IDataModuleContactos; + procedure AsignarID(AContacto: IBizContacto; const IDNuevo : Integer); virtual; + procedure AsignarIDDetalles(AContacto: IBizContacto; + const IDCabecera : Integer; ADataTable : TDADataTable); + procedure FiltrarEmpresa(AContacto : IBizContacto); virtual; + function _Vacio : IBizContacto; virtual; + function ValidarContacto(AContacto : IBizContacto): Boolean; virtual; + public + constructor Create; virtual; + 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; + end; + +implementation + +uses + Dialogs, uEditorRegistryUtils, cxControls, DB, uDAInterfaces, uDataTableUtils, + uDataModuleUsuarios, schContactosClient_Intf; + +{ TContactosController } + +procedure TContactosController.Anadir(AContacto: IBizContacto); +begin + AContacto.Insert; +end; + +procedure TContactosController.AsignarID(AContacto: IBizContacto; const IDNuevo : Integer); +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + if AContacto.EsNuevo then + begin + { ¡¡¡ OJO !!! + Primero cambiamos el ID de las tablas detalles + porque si cambiamos antes el ID de la cabecera + deja de funcionar la relacion M/D y no + encontraríamos las filas detalle. + + --> MASTER.ID = DETAIL.ID_CONTACTO <-- + } + + with AContacto._Categorias do + begin + if not DataTable.Active then + DataTable.Active := True; + Insert; + ID_CONTACTO := IDNuevo; + ID_CATEGORIA := AContacto.ID_CATEGORIA; + Post; + end; + end; + + { Los datos bancarios hay que comprobarlos siempre + tanto en inserción como en modificación. } + if Assigned(AContacto.DatosBancarios) then + AsignarIDDetalles(AContacto, IDNuevo, AContacto.DatosBancarios.DataTable); + + + { Las direcciones extras hay que comprobarlas siempre + tanto en inserción como en modificación. } + if Assigned(AContacto.Direcciones) then + AsignarIDDetalles(AContacto, IDNuevo, AContacto.Direcciones.DataTable); + + + if AContacto.EsNuevo then + begin + AContacto.Edit; + AContacto.ID := IDNuevo; + AContacto.ID_EMPRESA := dmUsuarios.IDEmpresaActual; + AContacto.Post; + end; +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TContactosController.Create; +begin + FDataModule := NIL; +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.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)', 'Atención', 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); + CopyDataTable(AContactos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TContactosController.Guardar(AContacto: IBizContacto): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarContacto(AContacto) then + begin + ShowHourglassCursor; + try + if AContacto.EsNuevo then + NuevoID := FDataModule.GetNextID(AContacto.DataTable.LogicalName) + else + NuevoID := AContacto.ID; + + AsignarID(AContacto, NuevoID); + 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; + +procedure TContactosController.AsignarIDDetalles (AContacto: IBizContacto; const IDCabecera : Integer; ADataTable : TDADataTable); +var + AContador : Integer; +begin + if not ADataTable.Active then + ADataTable.Active := True; + + if AContacto.EsNuevo then + begin + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_CONTACTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + } + while ADataTable.RecordCount > 0 do + begin + ADataTable.First; + ADataTable.Edit; + ADataTable.FieldByName('ID').AsInteger := FDataModule.GetNextID(ADataTable.LogicalName); +// ADataTable.FieldByName('ID_CONTACTO').AsInteger := IDCabecera; + //OJO SI UN DIA SON VARIOS LOS CAMPOS FORANEOS, SOLO FUNCIONA CUANDO ES UN ÚNICO CAMPO DE CLAVE FORANEA + ADataTable.FieldByName(ADataTable.DetailFields).AsInteger := IDCabecera; + ADataTable.Post; + end; + end + else begin + { En este caso es un recorrido normal y corriente. } + ADataTable.First; + AContador := ADataTable.RecordCount; + + while (AContador > 0) do + begin + // ¿Es nuevo? + if (ADataTable.FieldByName('ID').AsInteger < 0) then + begin + ADataTable.Edit; + ADataTable.FieldByName('ID').AsInteger := FDataModule.GetNextID(ADataTable.LogicalName); + ADataTable.Post; + end; + AContador := AContador - 1; + ADataTable.Next; + end; + ADataTable.First; + end; +end; + + +function TContactosController.ValidarContacto(AContacto: IBizContacto): Boolean; +begin + Result := False; + + 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 "automáticos" + AContacto.Edit; + AContacto.USUARIO := dmUsuarios.LoginInfo.Usuario; + AContacto.Post; + + Result := True; +end; + +function TContactosController._Vacio: IBizContacto; +begin + Result := Buscar(ID_NULO); +end; + +procedure TContactosController.FiltrarEmpresa(AContacto: IBizContacto); +begin + if AContacto.DataTable.Active then + AContacto.DataTable.Active := False; + + // Filtrar los contactos actuales por empresa + with AContacto.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_ContactosID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas new file mode 100644 index 00000000..f022881b --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas @@ -0,0 +1,194 @@ +unit uDireccionesContactoController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizDireccionesContacto, uIDataModuleContactos; + +type + IDireccionesContactoController = interface + ['{9B6CB172-F32C-414F-A0E2-99920CAF88FB}'] + procedure AsignarID(ADetalles: IBizDireccionesContacto; IDCabecera: Integer; AEsNuevo:Boolean); + procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure Ver(ADireccion : IBizDireccionesContacto); + function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean; + end; + + TDireccionesContactoController = class(TInterfacedObject, IDireccionesContactoController) + private + FDataModule : IDataModuleContactos; + public + procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure Ver(ADireccion : IBizDireccionesContacto); + procedure AsignarID(ADetalles: IBizDireccionesContacto; IDCabecera: Integer; AEsNuevo:Boolean); + function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean; + constructor Create; virtual; + destructor Destroy; override; + end; + +implementation + +{ TDireccionesContactoController } + +uses + uDataModuleContactos, schContactosClient_Intf, uIEditorDireccionContacto, + uEditorRegistryUtils, cxControls; + +procedure TDireccionesContactoController.AsignarID( + ADetalles: IBizDireccionesContacto; IDCabecera: Integer; + AEsNuevo: Boolean); +begin + with ADetalles do + begin + DataTable.DisableControls; + try + if not DataTable.Active then + DataTable.Active := True; + +// AuxPosicion := POSICION; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_CONTACTO := IDCabecera; + Post + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if AEsNuevo then + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_CONTACTO := IDCabecera; + Post + end; + DataTable.Next + end; + end; + finally + DataTable.EnableControls; + end; + end; +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 ('Dirección no asignada (CopiarDireccionFiscal)'); + + if AAnadir then + ADireccion.DataTable.Insert + else + ADireccion.DataTable.Edit; + try + with ADireccion do + begin + NOMBRE := 'Dirección de entrega'; + CALLE := AContacto.CALLE; + POBLACION := AContacto.POBLACION; + PROVINCIA := AContacto.PROVINCIA; + CODIGO_POSTAL := AContacto.CODIGO_POSTAL; + TELEFONO := AContacto.TELEFONO_1; + EMAIL := AContacto.EMAIL_1; + 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; + +procedure TDireccionesContactoController.Ver( + ADireccion: IBizDireccionesContacto); +var + AEditor : IEditorEditorDireccion; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorDireccion', IEditorEditorDireccion, AEditor); + with AEditor do + begin + Direccion := ADireccion; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; +end. diff --git a/Source/Modulos/Contactos/Controller/uGruposClienteController.pas b/Source/Modulos/Contactos/Controller/uGruposClienteController.pas new file mode 100644 index 00000000..29ffa3b9 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uGruposClienteController.pas @@ -0,0 +1,230 @@ +unit uGruposClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleClientes, uBizGruposCliente; + +type + IGruposClienteController = interface(IObservador) + ['{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(TObservador, 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; virtual; + 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 + 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 + Result := False; + + 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 descripción de este grupo.'); + + Result := True; +end; + +procedure TGruposClienteController.VerTodos(AGruposCliente: IBizGrupoCliente); +var + AEditor : IEditorGruposCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorGruposCliente', IEditorGruposCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + GruposCliente := AGruposCliente; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TGruposClienteController.Eliminar(AGrupoCliente: IBizGrupoCliente): Boolean; +begin + Result := False; + + 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/uProveedoresController.pas b/Source/Modulos/Contactos/Controller/uProveedoresController.pas new file mode 100644 index 00000000..8c4ba9f7 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uProveedoresController.pas @@ -0,0 +1,137 @@ +unit uProveedoresController; + +interface + +uses + uCustomEditor, + uContactosController, uBizContactos, + uIEditorProveedores, uIEditorProveedor, uIDataModuleContactos, uIDataModuleProveedores; + +type + IProveedoresController = interface(IContactosController) + ['{50F10D01-5120-470D-A61D-99FE8A76DF93}'] + function BuscarTodosTiendaWeb: IBizProveedor; + end; + + TProveedoresController = class(TContactosController, IProveedoresController) + public + constructor Create; override; + + function Buscar(const ID: Integer): IBizContacto; override; + function BuscarTodos: IBizContacto; override; + function BuscarTodosTiendaWeb: 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; + end; + +implementation + +uses + SysUtils, cxControls, Dialogs, uDataModuleProveedores, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, + uIEditorElegirProveedores, Controls; + +{ TProveedoresController } + +function TProveedoresController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleProveedores).GetItem(ID); + FiltrarEmpresa(Result); +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); +end; + +function TProveedoresController.ElegirContacto(AContactos: IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; +var + AEditor : IEditorElegirProveedores; +begin + Result := NIL; + + CreateEditor('EditorElegirProveedores', IEditorElegirProveedores, AEditor); + try + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ContactosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +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.Ver(AContacto: IBizContacto); +var + AEditor : IEditorProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorProveedor', IEditorProveedor, AEditor); + with AEditor do + begin + Contacto := AContacto; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TProveedoresController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorProveedores; +begin + CreateEditor('EditorProveedores', IEditorProveedores, AEditor); + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + 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 00000000..cc721200 --- /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.dpk b/Source/Modulos/Contactos/Data/Contactos_data.dpk new file mode 100644 index 00000000..ee393b90 --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.dpk @@ -0,0 +1,54 @@ +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} +{%TogetherDiagram 'ModelSupport_Contactos_data\default.txaPackage'} + +requires + rtl, + vcl, + dbrtl, + dsnap, + vcldb, + DataAbstract_D10, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Base, + Usuarios, + Contactos_model; + +contains + uDataModuleContactos in 'uDataModuleContactos.pas' {DataModuleContactos: TDAClientDataModule}, + uDataModuleClientes in 'uDataModuleClientes.pas' {DataModuleClientes : TDAClientDataModule}, + uDataModuleProveedores in 'uDataModuleProveedores.pas' {DataModuleProveedores: TDAClientDataModule}, + uDataModuleAgentes in 'uDataModuleAgentes.pas' {DataModuleAgentes: TDAClientDataModule}; + +end. diff --git a/Source/Modulos/Contactos/Data/Contactos_data.drc b/Source/Modulos/Contactos/Data/Contactos_data.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Data/Contactos_data.rc b/Source/Modulos/Contactos/Data/Contactos_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Data/Contactos_data.res b/Source/Modulos/Contactos/Data/Contactos_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Contactos/Data/Contactos_data.res differ diff --git a/Source/Modulos/Contactos/Data/tbx_d10.drc b/Source/Modulos/Contactos/Data/tbx_d10.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Data/tbx_d10.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm new file mode 100644 index 00000000..eb280a99 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm @@ -0,0 +1,573 @@ +inherited DataModuleAgentes: TDataModuleAgentes + object tbl_Agentes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contactos_ID_CATEGORIA' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Web' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de alta' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de modificaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Usuario' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'Agentes_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Agentes' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Agentes' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Agentes' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Agentes' + IndexDefs = <> + Left = 296 + Top = 176 + end + object ds_Agentes: TDADataSource + DataTable = tbl_Agentes + Left = 296 + Top = 248 + end + object tbl_AgentesComisiones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'AgentesComisiones_ID' + Alignment = taLeftJustify + DictionaryEntry = 'AgentesComisiones_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'AgentesComisiones_ID_AGENTE' + Alignment = taLeftJustify + DictionaryEntry = 'AgentesComisiones_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'AgentesComisiones_ID_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'AgentesComisiones_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Comisi'#243'n (%)' + Alignment = taRightJustify + DictionaryEntry = 'AgentesComisiones_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_AGENTE=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'AgentesComisiones' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'AgentesComisiones' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'AgentesComisiones' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Agentes + MasterFields = 'ID' + DetailFields = 'ID_AGENTE' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AgentesComisiones' + IndexDefs = <> + Left = 432 + Top = 176 + end + object ds_AgentesComisiones: TDADataSource + DataTable = tbl_AgentesComisiones + Left = 432 + Top = 248 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas b/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas new file mode 100644 index 00000000..3beed736 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas @@ -0,0 +1,122 @@ +unit uDataModuleAgentes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, + uBizAgentesComisiones, + uIDataModuleAgentes, uBizContactos, uDADesigntimeCall; + +type + TDataModuleAgentes = class(TDataModuleContactos, IDataModuleAgentes) + tbl_Agentes: TDACDSDataTable; + ds_Agentes: TDADataSource; + tbl_AgentesComisiones: TDACDSDataTable; + ds_AgentesComisiones: TDADataSource; + protected + function _GetComisiones: IBizAgenteComisiones; + public + function GetItem(const ID : Integer) : IBizAgente; + function NewItem : IBizAgente; + function GetItems : IBizAgente; + function GetNextID(const DataSetName : String) : Integer; override; + end; + + +implementation + +{$R *.dfm} + +uses + cxControls, schContactosClient_Intf, uDAInterfaces, uDataTableUtils; + +{ TDataModuleVendedores } + +function TDataModuleAgentes.GetItem(const ID: Integer): IBizAgente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ContactosID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAgentes.GetItems: IBizAgente; +var + AContacto : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AContacto := _CloneDataTable(tbl_Agentes); + AContacto.BusinessRulesID := BIZ_CLIENT_AGENTE; + + with TBizAgente(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + _Categorias := _GetCategorias; + Comisiones := _GetComisiones; + end; + + Result := (AContacto as IBizAgente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAgentes.GetNextID(const DataSetName: String): Integer; +var + aDataSet : String; + aGeneratorName : String; +begin + aDataSet := DataSetName; + + if aDataSet = nme_AgentesComisiones then + begin + aGeneratorName := 'GEN_AGENTES_COMISIONES_ID'; + Result := _InternalGetNextID(aGeneratorName); + Exit; + end; + + if aDataSet = nme_Agentes then + aDataSet := nme_Contactos; + + Result := inherited GetNextID(aDataSet); +end; + +function TDataModuleAgentes.NewItem: IBizAgente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAgentes._GetComisiones: IBizAgenteComisiones; +var + AComisiones : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AComisiones := _CloneDataTable(tbl_AgentesComisiones); + with AComisiones do + begin + BusinessRulesID := BIZ_CLIENT_AGENTE_COMISIONES; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AComisiones as IBizAgenteComisiones); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm new file mode 100644 index 00000000..87969736 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm @@ -0,0 +1,822 @@ +inherited DataModuleClientes: TDataModuleClientes + object tbl_Clientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contactos_ID_CATEGORIA' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Web' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de alta' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de modificaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Usuario' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo de cliente' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_GRUPO_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre comercial' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_NOMBRE_COMERCIAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENCIMIENTO_FACTURAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_VENCIMIENTO_FACTURAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BLOQUEADO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Bloqueado?' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_BLOQUEADO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Motivo del bloqueo' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_MOTIVO_BLOQUEO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Rec. equiv.' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'R'#233'gimen de IVA' + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_REGIMEN_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Clientes_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Clientes' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Clientes' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Clientes' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Clientes' + IndexDefs = <> + Left = 288 + Top = 184 + end + object ds_Clientes: TDADataSource + DataTable = tbl_Clientes + Left = 288 + Top = 256 + end + object tbl_ClientesDescuentos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'ClientesDescuentos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ClientesDescuentos_ID_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'ClientesDescuentos_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ClientesDescuentos_ID_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'ClientesDescuentos_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ClientesDescuentos_NOMBRE' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento (%)' + Alignment = taRightJustify + DictionaryEntry = 'ClientesDescuentos_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_CLIENTE=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'ClientesDescuentos' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'ClientesDescuentos' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'ClientesDescuentos' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Clientes + MasterFields = 'ID' + DetailFields = 'ID_CLIENTE' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ClientesDescuentos' + IndexDefs = <> + Left = 392 + Top = 184 + end + object ds_ClientesDescuentos: TDADataSource + DataTable = tbl_ClientesDescuentos + Left = 392 + Top = 256 + end + object tbl_GruposCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'GruposCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'GruposCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'GruposCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'GruposCliente' + IndexDefs = <> + Left = 168 + Top = 288 + end + object ds_GruposCliente: TDADataSource + DataTable = tbl_GruposCliente + Left = 168 + Top = 352 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.pas b/Source/Modulos/Contactos/Data/uDataModuleClientes.pas new file mode 100644 index 00000000..6f7664ab --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.pas @@ -0,0 +1,159 @@ +unit uDataModuleClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uBizClientesDescuentos, + uBizGruposCliente, uBizContactos, uDataModuleContactos, + uIDataModuleClientes, uDADesigntimeCall; + +type + TDataModuleClientes = class(TDataModuleContactos, IDataModuleClientes) + tbl_Clientes: TDACDSDataTable; + ds_Clientes: TDADataSource; + tbl_ClientesDescuentos: TDACDSDataTable; + ds_ClientesDescuentos: TDADataSource; + tbl_GruposCliente: TDACDSDataTable; + ds_GruposCliente: TDADataSource; + protected + function _GetDescuentos: IBizClienteDescuentos; + public + function GetItem(const ID : Integer) : IBizCliente; + function NewItem : IBizCliente; + function GetItems : IBizCliente; + function GetItemsTiendaWeb : IBizCliente; + function GetNextID(const DataSetName : String) : Integer; override; + function GetGruposCliente : IBizGrupoCliente; + end; + +implementation + +{$R *.dfm} + +uses + uBizContactosDatosBancarios, cxControls, uDAInterfaces, schContactosClient_Intf, + uDataTableUtils, Dialogs; + +{ TdmClientes } + +function TDataModuleClientes.GetGruposCliente: IBizGrupoCliente; +var + AGrupoCliente : TDACDSDataTable; +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; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ContactosID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItems: IBizCliente; +var + AContacto : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AContacto := _CloneDataTable(tbl_Clientes); + AContacto.BusinessRulesID := BIZ_CLIENT_CLIENTE; + + with TBizCliente(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Direcciones := _GetDirecciones; + Descuentos := _GetDescuentos; + _Categorias := _GetCategorias; + end; + + Result := (AContacto as IBizCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItemsTiendaWeb: IBizCliente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ClientesTIENDA_WEB + ' = 1'); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetNextID(const DataSetName: String): Integer; +var + aDataSet : String; + aGeneratorName : String; +begin + aDataSet := DataSetName; + + if aDataSet = nme_ClientesDescuentos then + begin + aGeneratorName := 'GEN_CLIENTES_DTOS_PROV_ID'; + Result := _InternalGetNextID(aGeneratorName); + Exit; + end; + + if aDataSet = nme_Clientes then + aDataSet := nme_Contactos; + + Result := inherited GetNextID(aDataSet); +end; + +function TDataModuleClientes.NewItem: IBizCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleClientes._GetDescuentos: IBizClienteDescuentos; +var + ADescuentos : TDACDSDataTable; +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.dfm b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm new file mode 100644 index 00000000..97026bad --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm @@ -0,0 +1,1107 @@ +object DataModuleContactos: TDataModuleContactos + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 420 + Width = 527 + object RORemoteService: TRORemoteService + ServiceName = 'srvContactos' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 40 + Top = 16 + end + object DABinAdapter: TDABINAdapter + Left = 40 + Top = 88 + end + object tbl_Contactos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contactos_ID_CATEGORIA' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Web' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de alta' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de modificaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Usuario' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '22' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Contactos' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Contactos' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Contactos' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Contactos' + IndexDefs = <> + Left = 168 + Top = 16 + end + object ds_Contactos: TDADataSource + DataTable = tbl_Contactos + Left = 168 + Top = 88 + end + object tbl_ContactosCategorias: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '444' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_CONTACTO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'ContactosCategorias' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'ContactosCategorias' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'ContactosCategorias' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ContactosCategorias' + IndexDefs = <> + Left = 288 + Top = 16 + end + object ds_ContactosCategorias: TDADataSource + DataTable = tbl_ContactosCategorias + Left = 288 + Top = 88 + end + object tbl_DatosBancarios: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_ID_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Titular' + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de entidad' + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de sucursal' + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'D'#237'gito de control' + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de cuenta' + Alignment = taLeftJustify + DictionaryEntry = 'DatosBancarios_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_CONTACTO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'DatosBancarios' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'DatosBancarios' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'DatosBancarios' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DatosBancarios' + IndexDefs = <> + Left = 432 + Top = 16 + end + object ds_DatosBancarios: TDADataSource + DataTable = tbl_DatosBancarios + Left = 432 + Top = 88 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 40 + Top = 176 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 40 + Top = 232 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 40 + Top = 288 + end + object ROBinMessage1: TROBinMessage + Left = 40 + Top = 340 + end + object tbl_DireccionesContacto: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_ID_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DireccionesContacto_NOMBRE' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_EMAIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Notas' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Coste del porte' + Alignment = taLeftJustify + DictionaryEntry = 'DireccionesContacto_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '9' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_CONTACTO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'DireccionesContacto' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'DireccionesContacto' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'DireccionesContacto' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DireccionesContacto' + IndexDefs = <> + Left = 168 + Top = 160 + end + object ds_DireccionesContacto: TDADataSource + DataTable = tbl_DireccionesContacto + Left = 168 + Top = 224 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.pas b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas new file mode 100644 index 00000000..c967d598 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas @@ -0,0 +1,181 @@ +unit uDataModuleContactos; + +interface + +uses + SysUtils, Classes, DB, DBClient, + uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uBizContactos, uBizContactosDatosBancarios, uBizCategoriasContacto, + uBizDireccionesContacto, + uIDataModuleContactos, uDADesigntimeCall; + +type + TDataModuleContactos = class(TDAClientDataModule, IDataModuleContactos) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + tbl_Contactos: TDACDSDataTable; + ds_Contactos: TDADataSource; + tbl_ContactosCategorias: TDACDSDataTable; + ds_ContactosCategorias: TDADataSource; + tbl_DatosBancarios: TDACDSDataTable; + ds_DatosBancarios: TDADataSource; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_DireccionesContacto: TDACDSDataTable; + ds_DireccionesContacto: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _InternalGetNextID(const AGeneratorName : String) : Integer; + public + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDatosBancarios : IBizContactosDatosBancarios; + function _GetDirecciones: IBizDireccionesContacto; + function _GetCategorias : IBizCategoriasContacto; + function _GetItems (IDCategoria : Integer): IBizContacto; virtual; + function GetNextID(const DataSetName : String) : Integer; virtual; + end; + +implementation + +{$R *.DFM} + +uses + uDataTableUtils, uDataModuleConexion, cxControls, + FactuGES_Intf, uDataModuleUsuarios, schContactosClient_Intf, Dialogs, + uDAInterfaces; + +{ TdmContactos } + +procedure TDataModuleContactos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleContactos.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_Contactos then + aGeneratorName := 'GEN_CONTACTOS_ID'; + + if DataSetName = nme_DatosBancarios then + aGeneratorName := 'GEN_CONTACTOS_DATOS_BANCO_ID'; + + if DataSetName = nme_DireccionesContacto then + aGeneratorName := 'GEN_CONTACTOS_DIR_ID'; + + if DataSetName = nme_DireccionesContacto then + aGeneratorName := 'GEN_CONTACTOS_DIR_ID'; + + Result := _InternalGetNextID(aGeneratorName); +end; + +function TDataModuleContactos._CloneDataTable( + const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleContactos._GetCategorias: IBizCategoriasContacto; +var + ACategorias : TDACDSDataTable; +begin + ShowHourglassCursor; + try + ACategorias := _CloneDataTable(tbl_ContactosCategorias); + with ACategorias do + begin + BusinessRulesID := BIZ_CLIENT_CATEGORIAS_CONTACTO; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ACategorias as IBizCategoriasContacto); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios; +var + ADatosBancarios : TDACDSDataTable; +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 : TDACDSDataTable; +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 : TDACDSDataTable; +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_AGENTE : BusinessRulesID := BIZ_CLIENT_AGENTE; + end; + + with TBizContacto(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Direcciones := _GetDirecciones; + _Categorias := _GetCategorias; + end; + + Result := (AContacto as IBizContacto); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._InternalGetNextID( + const AGeneratorName: String): Integer; +begin + Result := (RORemoteService as IsrvContactos).GetNextAutoInc(AGeneratorName) +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm new file mode 100644 index 00000000..7c148002 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm @@ -0,0 +1,460 @@ +inherited DataModuleProveedores: TDataModuleProveedores + object tbl_Proveedores: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contactos_ID_CATEGORIA' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail trabajo' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail particular' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Web' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de alta' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de modificaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Usuario' + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'R'#233'gimen de IVA' + Alignment = taLeftJustify + DictionaryEntry = 'Proveedores_REGIMEN_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento (%)' + Alignment = taLeftJustify + DictionaryEntry = 'Proveedores_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'Proveedores_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Proveedores_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Proveedores_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Proveedores' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Proveedores' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Proveedores' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Proveedores' + IndexDefs = <> + Left = 296 + Top = 184 + end + object ds_Proveedores: TDADataSource + DataTable = tbl_Proveedores + Left = 296 + Top = 256 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas b/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas new file mode 100644 index 00000000..dee45e7a --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas @@ -0,0 +1,107 @@ +unit uDataModuleProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, + + uIDataModuleProveedores, uBizContactos, uDADesigntimeCall; + +type + TDataModuleProveedores = class(TDataModuleContactos, IDataModuleProveedores) + tbl_Proveedores: TDACDSDataTable; + ds_Proveedores: TDADataSource; + public + function GetItem(const ID : Integer) : IBizProveedor; + function NewItem : IBizProveedor; + function GetItems : IBizProveedor; + function GetItemsTiendaWeb : IBizProveedor; + function GetNextID(const DataSetName : String) : Integer; override; + end; + +implementation + +{$R *.dfm} + +uses + cxControls, schContactosClient_Intf, uDAInterfaces, uDataTableUtils; + +{ TDataModuleProveedores } + +function TDataModuleProveedores.GetItem(const ID: Integer): IBizProveedor; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ContactosID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetItems: IBizProveedor; +var + AContacto : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AContacto := _CloneDataTable(tbl_Proveedores); + AContacto.BusinessRulesID := BIZ_CLIENT_PROVEEDOR; + + with TBizProveedor(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + _Categorias := _GetCategorias; + end; + + Result := (AContacto as IBizProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetItemsTiendaWeb: IBizProveedor; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_ProveedoresTIENDA_WEB + ' = 1'); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetNextID(const DataSetName: String): Integer; +var + aDataSet : String; +begin + aDataSet := DataSetName; + if aDataSet = nme_Proveedores then + aDataSet := nme_Contactos; + + Result := inherited GetNextID(aDataSet); +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 00000000..9466337d --- /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.dpk b/Source/Modulos/Contactos/Model/Contactos_model.dpk new file mode 100644 index 00000000..49865609 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.dpk @@ -0,0 +1,63 @@ +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, + dbrtl, + vcl, + DataAbstract_D10, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Base, + Usuarios, + Empresas_controller; + +contains + uBizContactosDatosBancarios in 'uBizContactosDatosBancarios.pas', + uBizContactos in 'uBizContactos.pas', + uBizCategoriasContacto in 'uBizCategoriasContacto.pas', + uIDataModuleContactos in 'Data\uIDataModuleContactos.pas', + uIDataModuleClientes in 'Data\uIDataModuleClientes.pas', + uIDataModuleProveedores in 'Data\uIDataModuleProveedores.pas', + uIDataModuleAgentes in 'Data\uIDataModuleAgentes.pas', + uBizDireccionesContacto in 'uBizDireccionesContacto.pas', + uBizAgentesComisiones in 'uBizAgentesComisiones.pas', + uBizClientesDescuentos in 'uBizClientesDescuentos.pas', + uRegimenIVAUtils in '..\Utiles\uRegimenIVAUtils.pas', + uBizGruposCliente in 'uBizGruposCliente.pas', + schContactosClient_Intf in 'schContactosClient_Intf.pas', + schContactosServer_Intf in 'schContactosServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Contactos/Model/Contactos_model.drc b/Source/Modulos/Contactos/Model/Contactos_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Model/Contactos_model.rc b/Source/Modulos/Contactos/Model/Contactos_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Model/Contactos_model.res b/Source/Modulos/Contactos/Model/Contactos_model.res new file mode 100644 index 00000000..36f26e23 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 00000000..24bcdec8 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleAgentes.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAgentes; + +interface + +uses + uBizContactos, uIDataModuleContactos; + +type + IDataModuleAgentes = interface(IDataModuleContactos) + ['{B482657B-F792-482A-A1E8-DD9DA4537C18}'] + function GetItem(const ID : Integer) : IBizAgente; + function NewItem : IBizAgente; + function GetItems : IBizAgente; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas new file mode 100644 index 00000000..2c1b70fe --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas @@ -0,0 +1,21 @@ +unit uIDataModuleClientes; + +interface + +uses + uBizContactos, uIDataModuleContactos, uBizGruposCliente; + +type + IDataModuleClientes = interface(IDataModuleContactos) + ['{A7442A11-01F6-4F1A-B6B0-D3B9CCBC5392}'] + function GetItem(const ID : Integer) : IBizCliente; + function NewItem : IBizCliente; + function GetItems : IBizCliente; + function GetItemsTiendaWeb : IBizCliente; + function GetGruposCliente : IBizGrupoCliente; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas new file mode 100644 index 00000000..66a21778 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas @@ -0,0 +1,19 @@ +unit uIDataModuleContactos; + +interface + +uses + SysUtils, Classes, + uBizContactos, uBizContactosDatosBancarios, uBizCategoriasContacto; + +type + IDataModuleContactos = interface + ['{835FFC4D-1AE9-4020-A042-C9D84EC25A2C}'] + function _GetItems (IDCategoria : Integer): IBizContacto; + function _GetDatosBancarios : IBizContactosDatosBancarios; + function GetNextID(const DataSetName : String) : Integer; + 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 00000000..cde45157 --- /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.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas new file mode 100644 index 00000000..f9b23a99 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas @@ -0,0 +1,20 @@ +unit uIDataModuleProveedores; + +interface + +uses + uBizContactos, uIDataModuleContactos; + +type + IDataModuleProveedores = interface(IDataModuleContactos) + ['{ED948BD0-F836-41FC-9293-76CD8973CA89}'] + function GetItem(const ID : Integer) : IBizProveedor; + function NewItem : IBizProveedor; + function GetItems : IBizProveedor; + function GetItemsTiendaWeb : IBizProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas new file mode 100644 index 00000000..7a354025 --- /dev/null +++ b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas @@ -0,0 +1,2931 @@ +unit schContactosClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{9BBFF8E2-3CC7-4F0E-ACE4-4FF17CF62ADE}'; + RID_GruposCliente = '{1A125A0A-ACBB-48E6-858B-2BD62623BBA0}'; + RID_DatosBancarios = '{1B585E63-0A6E-4FB5-B00F-1CC735417C6C}'; + RID_ContactosCategorias = '{CEAA28C6-FBF8-450F-8E1A-A425C2FDED82}'; + RID_Clientes = '{C136B25B-24CA-4EEC-AEE1-AD439BFE069B}'; + RID_Proveedores = '{E01D34AB-F259-414E-AB61-D08EC8E04ECD}'; + RID_Agentes = '{BE99F142-523D-4824-834B-AFBF2EBFEC34}'; + RID_DireccionesContacto = '{742A4212-7D7F-44F5-ACB3-55DA4CE128D3}'; + RID_AgentesComisiones = '{18E2C0B4-56FE-4ECA-849E-0EF10E3371DD}'; + RID_ClientesDescuentos = '{DC5D0AB4-7EE9-4FFA-A1F3-7FBB59C66D59}'; + + { Data table names } + nme_Contactos = 'Contactos'; + nme_GruposCliente = 'GruposCliente'; + nme_DatosBancarios = 'DatosBancarios'; + nme_ContactosCategorias = 'ContactosCategorias'; + nme_Clientes = 'Clientes'; + nme_Proveedores = 'Proveedores'; + nme_Agentes = 'Agentes'; + nme_DireccionesContacto = 'DireccionesContacto'; + nme_AgentesComisiones = 'AgentesComisiones'; + nme_ClientesDescuentos = 'ClientesDescuentos'; + + { Contactos fields } + fld_ContactosID = 'ID'; + fld_ContactosID_CATEGORIA = 'ID_CATEGORIA'; + fld_ContactosNIF_CIF = 'NIF_CIF'; + fld_ContactosNOMBRE = 'NOMBRE'; + 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_ContactosCALLE = 4; + idx_ContactosPOBLACION = 5; + idx_ContactosPROVINCIA = 6; + idx_ContactosCODIGO_POSTAL = 7; + idx_ContactosTELEFONO_1 = 8; + idx_ContactosTELEFONO_2 = 9; + idx_ContactosMOVIL_1 = 10; + idx_ContactosMOVIL_2 = 11; + idx_ContactosFAX = 12; + idx_ContactosEMAIL_1 = 13; + idx_ContactosEMAIL_2 = 14; + idx_ContactosPAGINA_WEB = 15; + idx_ContactosNOTAS = 16; + idx_ContactosFECHA_ALTA = 17; + idx_ContactosFECHA_MODIFICACION = 18; + idx_ContactosUSUARIO = 19; + idx_ContactosID_EMPRESA = 20; + idx_ContactosREFERENCIA = 21; + + { GruposCliente fields } + fld_GruposClienteDESCRIPCION = 'DESCRIPCION'; + + { GruposCliente field indexes } + idx_GruposClienteDESCRIPCION = 0; + + { 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'; + + { 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; + + { ContactosCategorias fields } + fld_ContactosCategoriasID_CONTACTO = 'ID_CONTACTO'; + fld_ContactosCategoriasID_CATEGORIA = 'ID_CATEGORIA'; + + { ContactosCategorias field indexes } + idx_ContactosCategoriasID_CONTACTO = 0; + idx_ContactosCategoriasID_CATEGORIA = 1; + + { Clientes fields } + fld_ClientesID = 'ID'; + fld_ClientesID_CATEGORIA = 'ID_CATEGORIA'; + fld_ClientesNIF_CIF = 'NIF_CIF'; + fld_ClientesNOMBRE = 'NOMBRE'; + 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 = 'VENCIMIENTO_FACTURAS'; + fld_ClientesBLOQUEADO = 'BLOQUEADO'; + fld_ClientesMOTIVO_BLOQUEO = 'MOTIVO_BLOQUEO'; + fld_ClientesRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_ClientesREGIMEN_IVA = 'REGIMEN_IVA'; + fld_ClientesID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_ClientesID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_ClientesTIENDA_WEB = 'TIENDA_WEB'; + + { Clientes field indexes } + idx_ClientesID = 0; + idx_ClientesID_CATEGORIA = 1; + idx_ClientesNIF_CIF = 2; + idx_ClientesNOMBRE = 3; + idx_ClientesCALLE = 4; + idx_ClientesPOBLACION = 5; + idx_ClientesPROVINCIA = 6; + idx_ClientesCODIGO_POSTAL = 7; + idx_ClientesTELEFONO_1 = 8; + idx_ClientesTELEFONO_2 = 9; + idx_ClientesMOVIL_1 = 10; + idx_ClientesMOVIL_2 = 11; + idx_ClientesFAX = 12; + idx_ClientesEMAIL_1 = 13; + idx_ClientesEMAIL_2 = 14; + idx_ClientesPAGINA_WEB = 15; + idx_ClientesNOTAS = 16; + idx_ClientesFECHA_ALTA = 17; + idx_ClientesFECHA_MODIFICACION = 18; + idx_ClientesUSUARIO = 19; + idx_ClientesID_EMPRESA = 20; + idx_ClientesREFERENCIA = 21; + idx_ClientesID_AGENTE = 22; + idx_ClientesGRUPO_CLIENTE = 23; + idx_ClientesNOMBRE_COMERCIAL = 24; + idx_ClientesVENCIMIENTO_FACTURAS = 25; + idx_ClientesBLOQUEADO = 26; + idx_ClientesMOTIVO_BLOQUEO = 27; + idx_ClientesRECARGO_EQUIVALENCIA = 28; + idx_ClientesREGIMEN_IVA = 29; + idx_ClientesID_TIPO_IVA = 30; + idx_ClientesID_FORMA_PAGO = 31; + idx_ClientesTIENDA_WEB = 32; + + { Proveedores fields } + fld_ProveedoresID = 'ID'; + fld_ProveedoresID_CATEGORIA = 'ID_CATEGORIA'; + fld_ProveedoresNIF_CIF = 'NIF_CIF'; + fld_ProveedoresNOMBRE = 'NOMBRE'; + 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_ProveedoresREGIMEN_IVA = 'REGIMEN_IVA'; + fld_ProveedoresDESCUENTO = 'DESCUENTO'; + fld_ProveedoresREFERENCIA = 'REFERENCIA'; + fld_ProveedoresID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_ProveedoresID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_ProveedoresTIENDA_WEB = 'TIENDA_WEB'; + + { Proveedores field indexes } + idx_ProveedoresID = 0; + idx_ProveedoresID_CATEGORIA = 1; + idx_ProveedoresNIF_CIF = 2; + idx_ProveedoresNOMBRE = 3; + idx_ProveedoresCALLE = 4; + idx_ProveedoresPOBLACION = 5; + idx_ProveedoresPROVINCIA = 6; + idx_ProveedoresCODIGO_POSTAL = 7; + idx_ProveedoresTELEFONO_1 = 8; + idx_ProveedoresTELEFONO_2 = 9; + idx_ProveedoresMOVIL_1 = 10; + idx_ProveedoresMOVIL_2 = 11; + idx_ProveedoresFAX = 12; + idx_ProveedoresEMAIL_1 = 13; + idx_ProveedoresEMAIL_2 = 14; + idx_ProveedoresPAGINA_WEB = 15; + idx_ProveedoresNOTAS = 16; + idx_ProveedoresFECHA_ALTA = 17; + idx_ProveedoresFECHA_MODIFICACION = 18; + idx_ProveedoresUSUARIO = 19; + idx_ProveedoresID_EMPRESA = 20; + idx_ProveedoresREGIMEN_IVA = 21; + idx_ProveedoresDESCUENTO = 22; + idx_ProveedoresREFERENCIA = 23; + idx_ProveedoresID_TIPO_IVA = 24; + idx_ProveedoresID_FORMA_PAGO = 25; + idx_ProveedoresTIENDA_WEB = 26; + + { Agentes fields } + fld_AgentesID = 'ID'; + fld_AgentesID_CATEGORIA = 'ID_CATEGORIA'; + fld_AgentesNIF_CIF = 'NIF_CIF'; + fld_AgentesNOMBRE = 'NOMBRE'; + 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'; + + { Agentes field indexes } + idx_AgentesID = 0; + idx_AgentesID_CATEGORIA = 1; + idx_AgentesNIF_CIF = 2; + idx_AgentesNOMBRE = 3; + idx_AgentesCALLE = 4; + idx_AgentesPOBLACION = 5; + idx_AgentesPROVINCIA = 6; + idx_AgentesCODIGO_POSTAL = 7; + idx_AgentesTELEFONO_1 = 8; + idx_AgentesTELEFONO_2 = 9; + idx_AgentesMOVIL_1 = 10; + idx_AgentesMOVIL_2 = 11; + idx_AgentesFAX = 12; + idx_AgentesEMAIL_1 = 13; + idx_AgentesEMAIL_2 = 14; + idx_AgentesPAGINA_WEB = 15; + idx_AgentesNOTAS = 16; + idx_AgentesFECHA_ALTA = 17; + idx_AgentesFECHA_MODIFICACION = 18; + idx_AgentesUSUARIO = 19; + idx_AgentesID_EMPRESA = 20; + idx_AgentesREFERENCIA = 21; + + { DireccionesContacto fields } + fld_DireccionesContactoID = 'ID'; + fld_DireccionesContactoID_CONTACTO = 'ID_CONTACTO'; + fld_DireccionesContactoNOMBRE = 'NOMBRE'; + fld_DireccionesContactoCALLE = 'CALLE'; + fld_DireccionesContactoPOBLACION = 'POBLACION'; + fld_DireccionesContactoPROVINCIA = 'PROVINCIA'; + fld_DireccionesContactoCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_DireccionesContactoPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_DireccionesContactoTELEFONO = 'TELEFONO'; + 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_DireccionesContactoNOMBRE = 2; + idx_DireccionesContactoCALLE = 3; + idx_DireccionesContactoPOBLACION = 4; + idx_DireccionesContactoPROVINCIA = 5; + idx_DireccionesContactoCODIGO_POSTAL = 6; + idx_DireccionesContactoPERSONA_CONTACTO = 7; + idx_DireccionesContactoTELEFONO = 8; + idx_DireccionesContactoEMAIL = 9; + idx_DireccionesContactoNOTAS = 10; + idx_DireccionesContactoPORTE = 11; + idx_DireccionesContactoFECHA_ALTA = 12; + idx_DireccionesContactoFECHA_MODIFICACION = 13; + + { AgentesComisiones fields } + fld_AgentesComisionesID = 'ID'; + fld_AgentesComisionesID_AGENTE = 'ID_AGENTE'; + fld_AgentesComisionesID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_AgentesComisionesNOMBRE = 'NOMBRE'; + fld_AgentesComisionesCOMISION = 'COMISION'; + + { AgentesComisiones field indexes } + idx_AgentesComisionesID = 0; + idx_AgentesComisionesID_AGENTE = 1; + idx_AgentesComisionesID_PROVEEDOR = 2; + idx_AgentesComisionesNOMBRE = 3; + idx_AgentesComisionesCOMISION = 4; + + { 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; + +type + { IContactos } + IContactos = interface(IDAStronglyTypedDataTable) + ['{F8E85D8B-B715-480C-B4C3-D670F1D338E5}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + end; + + { TContactosDataTableRules } + TContactosDataTableRules = class(TDADataTableRules, IContactos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IGruposCliente } + IGruposCliente = interface(IDAStronglyTypedDataTable) + ['{94906FA9-0FA1-4419-AF47-35AA61A9B589}'] + { Property getters and setters } + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + + + { Properties } + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + end; + + { TGruposClienteDataTableRules } + TGruposClienteDataTableRules = class(TDADataTableRules, IGruposCliente) + private + protected + { Property getters and setters } + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + + { Properties } + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDatosBancarios } + IDatosBancarios = interface(IDAStronglyTypedDataTable) + ['{7295794D-4DA7-4476-B5BA-213A276F2293}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + end; + + { TDatosBancariosDataTableRules } + TDatosBancariosDataTableRules = class(TDADataTableRules, IDatosBancarios) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IContactosCategorias } + IContactosCategorias = interface(IDAStronglyTypedDataTable) + ['{CF05FFAE-0534-4D13-92A2-9C36FD9AAAC0}'] + { Property getters and setters } + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + + + { Properties } + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + end; + + { TContactosCategoriasDataTableRules } + TContactosCategoriasDataTableRules = class(TDADataTableRules, IContactosCategorias) + private + protected + { Property getters and setters } + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + + { Properties } + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IClientes } + IClientes = interface(IDAStronglyTypedDataTable) + ['{64838FC5-7857-4DED-BB32-55A28BFBB60A}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + function GetVENCIMIENTO_FACTURASValue: Integer; + procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); + 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); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue; + 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; + end; + + { TClientesDataTableRules } + TClientesDataTableRules = class(TDADataTableRules, IClientes) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetGRUPO_CLIENTEValue: String; virtual; + procedure SetGRUPO_CLIENTEValue(const aValue: String); virtual; + function GetNOMBRE_COMERCIALValue: String; virtual; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); virtual; + function GetVENCIMIENTO_FACTURASValue: Integer; virtual; + procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); virtual; + function GetBLOQUEADOValue: Integer; virtual; + procedure SetBLOQUEADOValue(const aValue: Integer); virtual; + function GetMOTIVO_BLOQUEOValue: String; virtual; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetTIENDA_WEBValue: Integer; virtual; + procedure SetTIENDA_WEBValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue; + 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; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IProveedores } + IProveedores = interface(IDAStronglyTypedDataTable) + ['{1E365D2F-2637-4233-BE4D-BA1229F5180B}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(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); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + 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; + end; + + { TProveedoresDataTableRules } + TProveedoresDataTableRules = class(TDADataTableRules, IProveedores) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetTIENDA_WEBValue: Integer; virtual; + procedure SetTIENDA_WEBValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + 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; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAgentes } + IAgentes = interface(IDAStronglyTypedDataTable) + ['{C00C2819-E505-4A29-93CC-A0D387349B3F}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + end; + + { TAgentesDataTableRules } + TAgentesDataTableRules = class(TDADataTableRules, IAgentes) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDireccionesContacto } + IDireccionesContacto = interface(IDAStronglyTypedDataTable) + ['{FCAB585C-D809-4B50-80DA-D5AEE90D51CF}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetEMAILValue: String; + procedure SetEMAILValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetPORTEValue: Float; + procedure SetPORTEValue(const aValue: Float); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property PORTE: Float read GetPORTEValue write SetPORTEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + end; + + { TDireccionesContactoDataTableRules } + TDireccionesContactoDataTableRules = class(TDADataTableRules, IDireccionesContacto) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetPORTEValue: Float; virtual; + procedure SetPORTEValue(const aValue: Float); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property PORTE: Float read GetPORTEValue write SetPORTEValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAgentesComisiones } + IAgentesComisiones = interface(IDAStronglyTypedDataTable) + ['{F2E5ED3B-080F-4709-8680-9D7C4F7AD125}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCOMISIONValue: Float; + procedure SetCOMISIONValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + end; + + { TAgentesComisionesDataTableRules } + TAgentesComisionesDataTableRules = class(TDADataTableRules, IAgentesComisiones) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IClientesDescuentos } + IClientesDescuentos = interface(IDAStronglyTypedDataTable) + ['{A3D8D84F-473B-4A91-96BE-B6EA0096D2B9}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + end; + + { TClientesDescuentosDataTableRules } + TClientesDescuentosDataTableRules = class(TDADataTableRules, IClientesDescuentos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TContactosDataTableRules } +constructor TContactosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TContactosDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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_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.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_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.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.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_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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_ContactosNOTAS].AsString; +end; + +procedure TContactosDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_ContactosNOTAS].AsString := aValue.Text; +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_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.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.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.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ContactosREFERENCIA].AsString; +end; + +procedure TContactosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosREFERENCIA].AsString := aValue; +end; + + +{ TGruposClienteDataTableRules } +constructor TGruposClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGruposClienteDataTableRules.Destroy; +begin + inherited; +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; + + +{ 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.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.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.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.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.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.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosCUENTA].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosCUENTA].AsString := aValue; +end; + + +{ TContactosCategoriasDataTableRules } +constructor TContactosCategoriasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TContactosCategoriasDataTableRules.Destroy; +begin + inherited; +end; + +function TContactosCategoriasDataTableRules.GetID_CONTACTOValue: Integer; +begin + result := DataTable.Fields[idx_ContactosCategoriasID_CONTACTO].AsInteger; +end; + +procedure TContactosCategoriasDataTableRules.SetID_CONTACTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ContactosCategoriasID_CONTACTO].AsInteger := aValue; +end; + +function TContactosCategoriasDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_ContactosCategoriasID_CATEGORIA].AsInteger; +end; + +procedure TContactosCategoriasDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ContactosCategoriasID_CATEGORIA].AsInteger := aValue; +end; + + +{ TClientesDataTableRules } +constructor TClientesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TClientesDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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_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.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_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.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.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_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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_ClientesNOTAS].AsString; +end; + +procedure TClientesDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_ClientesNOTAS].AsString := aValue.Text; +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_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.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.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.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.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.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.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.GetVENCIMIENTO_FACTURASValue: Integer; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURASValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetBLOQUEADOValue: Integer; +begin + result := DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger; +end; + +procedure TClientesDataTableRules.SetBLOQUEADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger := aValue; +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.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.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.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_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.GetTIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger; +end; + +procedure TClientesDataTableRules.SetTIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger := aValue; +end; + + +{ TProveedoresDataTableRules } +constructor TProveedoresDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TProveedoresDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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_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.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_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.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.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_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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_ProveedoresNOTAS].AsString; +end; + +procedure TProveedoresDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_ProveedoresNOTAS].AsString := aValue.Text; +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_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.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.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.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.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.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.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_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.GetTIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetTIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger := aValue; +end; + + +{ TAgentesDataTableRules } +constructor TAgentesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAgentesDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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_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.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_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.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.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_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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_AgentesNOTAS].AsString; +end; + +procedure TAgentesDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_AgentesNOTAS].AsString := aValue.Text; +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_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.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.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.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AgentesREFERENCIA].AsString; +end; + +procedure TAgentesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesREFERENCIA].AsString := aValue; +end; + + +{ TDireccionesContactoDataTableRules } +constructor TDireccionesContactoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDireccionesContactoDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_DireccionesContactoNOTAS].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_DireccionesContactoNOTAS].AsString := aValue.Text; +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.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_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; + + +{ TAgentesComisionesDataTableRules } +constructor TAgentesComisionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAgentesComisionesDataTableRules.Destroy; +begin + inherited; +end; + +function TAgentesComisionesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AgentesComisionesID].AsInteger; +end; + +procedure TAgentesComisionesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesComisionesID].AsInteger := aValue; +end; + +function TAgentesComisionesDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_AgentesComisionesID_AGENTE].AsInteger; +end; + +procedure TAgentesComisionesDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesComisionesID_AGENTE].AsInteger := aValue; +end; + +function TAgentesComisionesDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_AgentesComisionesID_PROVEEDOR].AsInteger; +end; + +procedure TAgentesComisionesDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesComisionesID_PROVEEDOR].AsInteger := aValue; +end; + +function TAgentesComisionesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AgentesComisionesNOMBRE].AsString; +end; + +procedure TAgentesComisionesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesComisionesNOMBRE].AsString := aValue; +end; + +function TAgentesComisionesDataTableRules.GetCOMISIONValue: Float; +begin + result := DataTable.Fields[idx_AgentesComisionesCOMISION].AsFloat; +end; + +procedure TAgentesComisionesDataTableRules.SetCOMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_AgentesComisionesCOMISION].AsFloat := aValue; +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.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_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.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.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat; +end; + +procedure TClientesDescuentosDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_Contactos, TContactosDataTableRules); + RegisterDataTableRules(RID_GruposCliente, TGruposClienteDataTableRules); + RegisterDataTableRules(RID_DatosBancarios, TDatosBancariosDataTableRules); + RegisterDataTableRules(RID_ContactosCategorias, TContactosCategoriasDataTableRules); + RegisterDataTableRules(RID_Clientes, TClientesDataTableRules); + RegisterDataTableRules(RID_Proveedores, TProveedoresDataTableRules); + RegisterDataTableRules(RID_Agentes, TAgentesDataTableRules); + RegisterDataTableRules(RID_DireccionesContacto, TDireccionesContactoDataTableRules); + RegisterDataTableRules(RID_AgentesComisiones, TAgentesComisionesDataTableRules); + RegisterDataTableRules(RID_ClientesDescuentos, TClientesDescuentosDataTableRules); + +end. diff --git a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas new file mode 100644 index 00000000..fd67402d --- /dev/null +++ b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas @@ -0,0 +1,3427 @@ +unit schContactosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{1A186C40-7B2A-4996-9049-474C34DAB42A}'; + RID_GruposClienteDelta = '{0CB46296-C5EF-4197-B2AE-88FF21FA2299}'; + RID_DatosBancariosDelta = '{004D645E-F759-4C1C-BB2F-C6B22AAAF386}'; + RID_ContactosCategoriasDelta = '{3D6D5984-3A7D-470C-A849-1CA4373EE240}'; + RID_ClientesDelta = '{7A5363AF-ED8C-4EBF-97E5-F04F7033AAE3}'; + RID_ProveedoresDelta = '{24F8D368-A486-4CD8-A3B4-BDD9EA61D858}'; + RID_AgentesDelta = '{DF5B1C90-BF74-48B6-B966-CE86A3CD1341}'; + RID_DireccionesContactoDelta = '{89467FE1-2403-4681-9717-74DB1F7EB2B3}'; + RID_AgentesComisionesDelta = '{342077F0-BE07-49E4-8BB2-206FD566251F}'; + RID_ClientesDescuentosDelta = '{B9AD9496-8837-4F2B-B4B5-C5EBE958423A}'; + +type + { IContactosDelta } + IContactosDelta = interface(IContactos) + ['{1A186C40-7B2A-4996-9049-474C34DAB42A}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : 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 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 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 + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGruposClienteDelta } + IGruposClienteDelta = interface(IGruposCliente) + ['{0CB46296-C5EF-4197-B2AE-88FF21FA2299}'] + { Property getters and setters } + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TGruposClienteBusinessProcessorRules } + TGruposClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IGruposCliente, IGruposClienteDelta) + private + protected + { Property getters and setters } + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + + { Properties } + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDatosBancariosDelta } + IDatosBancariosDelta = interface(IDatosBancarios) + ['{004D645E-F759-4C1C-BB2F-C6B22AAAF386}'] + { 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; + + { 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; + end; + + { TDatosBancariosBusinessProcessorRules } + TDatosBancariosBusinessProcessorRules = class(TDABusinessProcessorRules, IDatosBancarios, IDatosBancariosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetTITULARValue: String; virtual; + function GetOldTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property OldTITULAR : String read GetOldTITULARValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IContactosCategoriasDelta } + IContactosCategoriasDelta = interface(IContactosCategorias) + ['{3D6D5984-3A7D-470C-A849-1CA4373EE240}'] + { Property getters and setters } + function GetOldID_CONTACTOValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + + { Properties } + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + end; + + { TContactosCategoriasBusinessProcessorRules } + TContactosCategoriasBusinessProcessorRules = class(TDABusinessProcessorRules, IContactosCategorias, IContactosCategoriasDelta) + private + protected + { Property getters and setters } + function GetID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + + { Properties } + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IClientesDelta } + IClientesDelta = interface(IClientes) + ['{7A5363AF-ED8C-4EBF-97E5-F04F7033AAE3}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : 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 GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldGRUPO_CLIENTEValue : String; + function GetOldNOMBRE_COMERCIALValue : String; + function GetOldVENCIMIENTO_FACTURASValue : Integer; + function GetOldBLOQUEADOValue : Integer; + function GetOldMOTIVO_BLOQUEOValue : String; + function GetOldRECARGO_EQUIVALENCIAValue : Integer; + function GetOldREGIMEN_IVAValue : String; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldTIENDA_WEBValue : Integer; + + { 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 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 : Integer read GetOldVENCIMIENTO_FACTURASValue; + property OldBLOQUEADO : Integer read GetOldBLOQUEADOValue; + property OldMOTIVO_BLOQUEO : String read GetOldMOTIVO_BLOQUEOValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + 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 : Integer read GetOldTIENDA_WEBValue; + end; + + { TClientesBusinessProcessorRules } + TClientesBusinessProcessorRules = class(TDABusinessProcessorRules, IClientes, IClientesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetGRUPO_CLIENTEValue: String; virtual; + function GetOldGRUPO_CLIENTEValue: String; virtual; + procedure SetGRUPO_CLIENTEValue(const aValue: String); virtual; + function GetNOMBRE_COMERCIALValue: String; virtual; + function GetOldNOMBRE_COMERCIALValue: String; virtual; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); virtual; + function GetVENCIMIENTO_FACTURASValue: Integer; virtual; + function GetOldVENCIMIENTO_FACTURASValue: Integer; virtual; + procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); virtual; + function GetBLOQUEADOValue: Integer; virtual; + function GetOldBLOQUEADOValue: Integer; virtual; + procedure SetBLOQUEADOValue(const aValue: Integer); virtual; + function GetMOTIVO_BLOQUEOValue: String; virtual; + function GetOldMOTIVO_BLOQUEOValue: String; virtual; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetREGIMEN_IVAValue: String; virtual; + function GetOldREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetTIENDA_WEBValue: Integer; virtual; + function GetOldTIENDA_WEBValue: Integer; virtual; + procedure SetTIENDA_WEBValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property GRUPO_CLIENTE : String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property OldGRUPO_CLIENTE : String read GetOldGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL : String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property OldNOMBRE_COMERCIAL : String read GetOldNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS : Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue; + property OldVENCIMIENTO_FACTURAS : Integer read GetOldVENCIMIENTO_FACTURASValue; + property BLOQUEADO : Integer read GetBLOQUEADOValue write SetBLOQUEADOValue; + property OldBLOQUEADO : Integer read GetOldBLOQUEADOValue; + property MOTIVO_BLOQUEO : String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property OldMOTIVO_BLOQUEO : String read GetOldMOTIVO_BLOQUEOValue; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property REGIMEN_IVA : String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property TIENDA_WEB : Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property OldTIENDA_WEB : Integer read GetOldTIENDA_WEBValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IProveedoresDelta } + IProveedoresDelta = interface(IProveedores) + ['{24F8D368-A486-4CD8-A3B4-BDD9EA61D858}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : 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 GetOldID_EMPRESAValue : Integer; + function GetOldREGIMEN_IVAValue : String; + function GetOldDESCUENTOValue : Float; + function GetOldREFERENCIAValue : String; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldTIENDA_WEBValue : Integer; + + { 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 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 OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldTIENDA_WEB : Integer read GetOldTIENDA_WEBValue; + end; + + { TProveedoresBusinessProcessorRules } + TProveedoresBusinessProcessorRules = class(TDABusinessProcessorRules, IProveedores, IProveedoresDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREGIMEN_IVAValue: String; virtual; + function GetOldREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetTIENDA_WEBValue: Integer; virtual; + function GetOldTIENDA_WEBValue: Integer; virtual; + procedure SetTIENDA_WEBValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REGIMEN_IVA : String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property TIENDA_WEB : Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property OldTIENDA_WEB : Integer read GetOldTIENDA_WEBValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAgentesDelta } + IAgentesDelta = interface(IAgentes) + ['{DF5B1C90-BF74-48B6-B966-CE86A3CD1341}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : 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 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 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; + + { TAgentesBusinessProcessorRules } + TAgentesBusinessProcessorRules = class(TDABusinessProcessorRules, IAgentes, IAgentesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDireccionesContactoDelta } + IDireccionesContactoDelta = interface(IDireccionesContacto) + ['{89467FE1-2403-4681-9717-74DB1F7EB2B3}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CONTACTOValue : Integer; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : 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 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 OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + 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 + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetEMAILValue: String; virtual; + function GetOldEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetPORTEValue: Float; virtual; + function GetOldPORTEValue: Float; virtual; + procedure SetPORTEValue(const aValue: Float); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property EMAIL : String read GetEMAILValue write SetEMAILValue; + property OldEMAIL : String read GetOldEMAILValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property PORTE : Float read GetPORTEValue write SetPORTEValue; + property OldPORTE : Float read GetOldPORTEValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAgentesComisionesDelta } + IAgentesComisionesDelta = interface(IAgentesComisiones) + ['{342077F0-BE07-49E4-8BB2-206FD566251F}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_AGENTEValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldCOMISIONValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + end; + + { TAgentesComisionesBusinessProcessorRules } + TAgentesComisionesBusinessProcessorRules = class(TDABusinessProcessorRules, IAgentesComisiones, IAgentesComisionesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCOMISIONValue: Float; virtual; + function GetOldCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IClientesDescuentosDelta } + IClientesDescuentosDelta = interface(IClientesDescuentos) + ['{B9AD9496-8837-4F2B-B4B5-C5EBE958423A}'] + { 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TContactosBusinessProcessorRules } +constructor TContactosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TContactosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TContactosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID]; +end; + +function TContactosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID]; +end; + +procedure TContactosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID] := aValue; +end; + +function TContactosBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA]; +end; + +function TContactosBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_CATEGORIA]; +end; + +procedure TContactosBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA] := aValue; +end; + +function TContactosBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF]; +end; + +function TContactosBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNIF_CIF]; +end; + +procedure TContactosBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF] := aValue; +end; + +function TContactosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE]; +end; + +function TContactosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOMBRE]; +end; + +procedure TContactosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE] := aValue; +end; + +function TContactosBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE]; +end; + +function TContactosBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCALLE]; +end; + +procedure TContactosBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE] := aValue; +end; + +function TContactosBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION]; +end; + +function TContactosBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPOBLACION]; +end; + +procedure TContactosBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION] := aValue; +end; + +function TContactosBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA]; +end; + +function TContactosBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPROVINCIA]; +end; + +procedure TContactosBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA] := aValue; +end; + +function TContactosBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL]; +end; + +function TContactosBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGO_POSTAL]; +end; + +procedure TContactosBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL] := aValue; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1]; +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_1]; +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1] := aValue; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2]; +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_2]; +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2] := aValue; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1]; +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_1]; +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1] := aValue; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2]; +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_2]; +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2] := aValue; +end; + +function TContactosBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX]; +end; + +function TContactosBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFAX]; +end; + +procedure TContactosBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX] := aValue; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1]; +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_1]; +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1] := aValue; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2]; +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_2]; +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2] := aValue; +end; + +function TContactosBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB]; +end; + +function TContactosBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPAGINA_WEB]; +end; + +procedure TContactosBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB] := aValue; +end; + +function TContactosBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS]; +end; + +function TContactosBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOTAS]; +end; + +procedure TContactosBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS] := aValue.Text; +end; + +function TContactosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA]; +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_ALTA]; +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA] := aValue; +end; + +function TContactosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION]; +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_MODIFICACION]; +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION] := aValue; +end; + +function TContactosBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO]; +end; + +function TContactosBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosUSUARIO]; +end; + +procedure TContactosBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO] := aValue; +end; + +function TContactosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA]; +end; + +function TContactosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_EMPRESA]; +end; + +procedure TContactosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA] := aValue; +end; + +function TContactosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA]; +end; + +function TContactosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosREFERENCIA]; +end; + +procedure TContactosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA] := aValue; +end; + + +{ TGruposClienteBusinessProcessorRules } +constructor TGruposClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGruposClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGruposClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION]; +end; + +function TGruposClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposClienteDESCRIPCION]; +end; + +procedure TGruposClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID_CONTACTO]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosTITULAR]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosENTIDAD]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosSUCURSAL]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosDC]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC] := aValue; +end; + +function TDatosBancariosBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosCUENTA]; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA] := aValue; +end; + + +{ TContactosCategoriasBusinessProcessorRules } +constructor TContactosCategoriasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TContactosCategoriasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TContactosCategoriasBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCategoriasID_CONTACTO]; +end; + +function TContactosCategoriasBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCategoriasID_CONTACTO]; +end; + +procedure TContactosCategoriasBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCategoriasID_CONTACTO] := aValue; +end; + +function TContactosCategoriasBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCategoriasID_CATEGORIA]; +end; + +function TContactosCategoriasBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCategoriasID_CATEGORIA]; +end; + +procedure TContactosCategoriasBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCategoriasID_CATEGORIA] := aValue; +end; + + +{ TClientesBusinessProcessorRules } +constructor TClientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TClientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TClientesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID]; +end; + +function TClientesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID]; +end; + +procedure TClientesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID] := aValue; +end; + +function TClientesBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_CATEGORIA]; +end; + +procedure TClientesBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF]; +end; + +function TClientesBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNIF_CIF]; +end; + +procedure TClientesBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF] := aValue; +end; + +function TClientesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE]; +end; + +function TClientesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE]; +end; + +procedure TClientesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE] := aValue; +end; + +function TClientesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE]; +end; + +function TClientesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCALLE]; +end; + +procedure TClientesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE] := aValue; +end; + +function TClientesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION]; +end; + +function TClientesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPOBLACION]; +end; + +procedure TClientesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION] := aValue; +end; + +function TClientesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPROVINCIA]; +end; + +procedure TClientesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL]; +end; + +function TClientesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCODIGO_POSTAL]; +end; + +procedure TClientesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL] := aValue; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1]; +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_1]; +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1] := aValue; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2]; +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_2]; +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2] := aValue; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1]; +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_1]; +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1] := aValue; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2]; +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_2]; +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2] := aValue; +end; + +function TClientesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX]; +end; + +function TClientesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFAX]; +end; + +procedure TClientesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX] := aValue; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1]; +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_1]; +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1] := aValue; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2]; +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_2]; +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2] := aValue; +end; + +function TClientesBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPAGINA_WEB]; +end; + +procedure TClientesBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB] := aValue; +end; + +function TClientesBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS]; +end; + +function TClientesBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOTAS]; +end; + +procedure TClientesBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS] := aValue.Text; +end; + +function TClientesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA]; +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_ALTA]; +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION]; +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_MODIFICACION]; +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION] := aValue; +end; + +function TClientesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO]; +end; + +function TClientesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesUSUARIO]; +end; + +procedure TClientesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO] := aValue; +end; + +function TClientesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_EMPRESA]; +end; + +procedure TClientesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREFERENCIA]; +end; + +procedure TClientesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE]; +end; + +function TClientesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_AGENTE]; +end; + +procedure TClientesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE] := aValue; +end; + +function TClientesBusinessProcessorRules.GetGRUPO_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; +end; + +function TClientesBusinessProcessorRules.GetOldGRUPO_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesGRUPO_CLIENTE]; +end; + +procedure TClientesBusinessProcessorRules.SetGRUPO_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE] := aValue; +end; + +function TClientesBusinessProcessorRules.GetNOMBRE_COMERCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; +end; + +function TClientesBusinessProcessorRules.GetOldNOMBRE_COMERCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE_COMERCIAL]; +end; + +procedure TClientesBusinessProcessorRules.SetNOMBRE_COMERCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL] := aValue; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS] := aValue; +end; + +function TClientesBusinessProcessorRules.GetBLOQUEADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO]; +end; + +function TClientesBusinessProcessorRules.GetOldBLOQUEADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesBLOQUEADO]; +end; + +procedure TClientesBusinessProcessorRules.SetBLOQUEADOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO] := aValue; +end; + +function TClientesBusinessProcessorRules.GetMOTIVO_BLOQUEOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO]; +end; + +function TClientesBusinessProcessorRules.GetOldMOTIVO_BLOQUEOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOTIVO_BLOQUEO]; +end; + +procedure TClientesBusinessProcessorRules.SetMOTIVO_BLOQUEOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO] := aValue; +end; + +function TClientesBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; +end; + +procedure TClientesBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA]; +end; + +function TClientesBusinessProcessorRules.GetOldREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREGIMEN_IVA]; +end; + +procedure TClientesBusinessProcessorRules.SetREGIMEN_IVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA] := aValue; +end; + +function TClientesBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_TIPO_IVA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := 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; + +function TClientesBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_FORMA_PAGO]; +end; + +function TClientesBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TClientesBusinessProcessorRules.GetTIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetOldTIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTIENDA_WEB]; +end; + +procedure TClientesBusinessProcessorRules.SetTIENDA_WEBValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB] := aValue; +end; + + +{ TProveedoresBusinessProcessorRules } +constructor TProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TProveedoresBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TProveedoresBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID]; +end; + +function TProveedoresBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID]; +end; + +procedure TProveedoresBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_CATEGORIA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNIF_CIF]; +end; + +procedure TProveedoresBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOMBRE]; +end; + +procedure TProveedoresBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCALLE]; +end; + +procedure TProveedoresBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPOBLACION]; +end; + +procedure TProveedoresBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPROVINCIA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCODIGO_POSTAL]; +end; + +procedure TProveedoresBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_1]; +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_2]; +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_1]; +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_2]; +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFAX]; +end; + +procedure TProveedoresBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_1]; +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_2]; +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPAGINA_WEB]; +end; + +procedure TProveedoresBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOTAS]; +end; + +procedure TProveedoresBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS] := aValue.Text; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_ALTA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_MODIFICACION]; +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresUSUARIO]; +end; + +procedure TProveedoresBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_EMPRESA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREGIMEN_IVA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetREGIMEN_IVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresDESCUENTO]; +end; + +procedure TProveedoresBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREFERENCIA]; +end; + +procedure TProveedoresBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA] := aValue; +end; + +function TProveedoresBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_TIPO_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := 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; + +function TProveedoresBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TProveedoresBusinessProcessorRules.GetTIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTIENDA_WEB]; +end; + +procedure TProveedoresBusinessProcessorRules.SetTIENDA_WEBValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB] := aValue; +end; + + +{ TAgentesBusinessProcessorRules } +constructor TAgentesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAgentesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAgentesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID]; +end; + +function TAgentesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID]; +end; + +procedure TAgentesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_CATEGORIA]; +end; + +procedure TAgentesBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF]; +end; + +function TAgentesBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNIF_CIF]; +end; + +procedure TAgentesBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE]; +end; + +function TAgentesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOMBRE]; +end; + +procedure TAgentesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE]; +end; + +function TAgentesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCALLE]; +end; + +procedure TAgentesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION]; +end; + +function TAgentesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPOBLACION]; +end; + +procedure TAgentesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPROVINCIA]; +end; + +procedure TAgentesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL]; +end; + +function TAgentesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCODIGO_POSTAL]; +end; + +procedure TAgentesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_1]; +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_2]; +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_1]; +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_2]; +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX]; +end; + +function TAgentesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFAX]; +end; + +procedure TAgentesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_1]; +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_2]; +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB]; +end; + +function TAgentesBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPAGINA_WEB]; +end; + +procedure TAgentesBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS]; +end; + +function TAgentesBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOTAS]; +end; + +procedure TAgentesBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS] := aValue.Text; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_ALTA]; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_MODIFICACION]; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO]; +end; + +function TAgentesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesUSUARIO]; +end; + +procedure TAgentesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA]; +end; + +function TAgentesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_EMPRESA]; +end; + +procedure TAgentesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA] := aValue; +end; + +function TAgentesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesREFERENCIA]; +end; + +procedure TAgentesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA] := aValue; +end; + + +{ TDireccionesContactoBusinessProcessorRules } +constructor TDireccionesContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDireccionesContactoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDireccionesContactoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID_CONTACTO]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOMBRE]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCALLE]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPOBLACION]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPROVINCIA]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCODIGO_POSTAL]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPERSONA_CONTACTO]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoTELEFONO]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoEMAIL]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetEMAILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOTAS]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS] := aValue.Text; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPORTE]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_ALTA]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA] := aValue; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_MODIFICACION]; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION] := aValue; +end; + + +{ TAgentesComisionesBusinessProcessorRules } +constructor TAgentesComisionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAgentesComisionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAgentesComisionesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID]; +end; + +function TAgentesComisionesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesComisionesID]; +end; + +procedure TAgentesComisionesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID] := aValue; +end; + +function TAgentesComisionesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID_AGENTE]; +end; + +function TAgentesComisionesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesComisionesID_AGENTE]; +end; + +procedure TAgentesComisionesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID_AGENTE] := aValue; +end; + +function TAgentesComisionesBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID_PROVEEDOR]; +end; + +function TAgentesComisionesBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesComisionesID_PROVEEDOR]; +end; + +procedure TAgentesComisionesBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesID_PROVEEDOR] := aValue; +end; + +function TAgentesComisionesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesNOMBRE]; +end; + +function TAgentesComisionesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesComisionesNOMBRE]; +end; + +procedure TAgentesComisionesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesNOMBRE] := aValue; +end; + +function TAgentesComisionesBusinessProcessorRules.GetCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesCOMISION]; +end; + +function TAgentesComisionesBusinessProcessorRules.GetOldCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesComisionesCOMISION]; +end; + +procedure TAgentesComisionesBusinessProcessorRules.SetCOMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesComisionesCOMISION] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID]; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID] := aValue; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_CLIENTE]; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE] := aValue; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_PROVEEDOR]; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR] := aValue; +end; + +function TClientesDescuentosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosNOMBRE]; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE] := aValue; +end; + +function TClientesDescuentosBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosDESCUENTO]; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ContactosDelta, TContactosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GruposClienteDelta, TGruposClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DatosBancariosDelta, TDatosBancariosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ContactosCategoriasDelta, TContactosCategoriasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ClientesDelta, TClientesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ProveedoresDelta, TProveedoresBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AgentesDelta, TAgentesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DireccionesContactoDelta, TDireccionesContactoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AgentesComisionesDelta, TAgentesComisionesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ClientesDescuentosDelta, TClientesDescuentosBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas new file mode 100644 index 00000000..47715538 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas @@ -0,0 +1,47 @@ +unit uBizAgentesComisiones; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_AGENTE_COMISIONES = 'Client.AgenteComisiones'; + +type + IBizAgenteComisiones = interface (IAgentesComisiones) + ['{18ABE9D5-8258-4328-B54A-D2B07A8917AA}'] + end; + + TBizAgenteComisiones = class(TAgentesComisionesDataTableRules, IBizAgenteComisiones) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizAgenteComisiones } + +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.pas b/Source/Modulos/Contactos/Model/uBizAgentesServer.pas new file mode 100644 index 00000000..08fda2c8 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizAgentesServer.pas @@ -0,0 +1,46 @@ +unit uBizAgentesServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_AGENTE = 'Server.Agente'; + +type + TBizAgenteServer = class(TBizContactosServer) + protected + 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, DARemoteService_Impl, + schContactosClient_Intf, uBusinessUtils; + +{ TBizAgenteServer } + +procedure TBizAgenteServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +begin + inherited; +end; + +procedure TBizAgenteServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +begin + inherited; +end; + +procedure TBizAgenteServer.Update_Datos_Contacto(aChange: TDADeltaChange); +begin + inherited; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_AGENTE, TBizAgenteServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizCategoriasContacto.pas b/Source/Modulos/Contactos/Model/uBizCategoriasContacto.pas new file mode 100644 index 00000000..a54eda33 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizCategoriasContacto.pas @@ -0,0 +1,27 @@ +unit uBizCategoriasContacto; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_CATEGORIAS_CONTACTO = 'Client.CategoriasContacto'; + +type + IBizCategoriasContacto = interface(IContactosCategorias) + ['{C056E958-69BE-4819-A6A7-CB7FD6DA0BCB}'] + end; + + TBizCategoriasContacto = class(TContactosCategoriasDataTableRules, IBizCategoriasContacto) + end; + +implementation + + +initialization + RegisterDataTableRules(BIZ_CLIENT_CATEGORIAS_CONTACTO, TBizCategoriasContacto); + + +end. diff --git a/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas new file mode 100644 index 00000000..d5e75abf --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas @@ -0,0 +1,47 @@ +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; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizClienteDescuentos } + +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.pas b/Source/Modulos/Contactos/Model/uBizClientesServer.pas new file mode 100644 index 00000000..6be915f0 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizClientesServer.pas @@ -0,0 +1,125 @@ +unit uBizClientesServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_CLIENTE = 'Server.Cliente'; + +type + TBizClienteServer = class(TBizContactosServer) + protected + 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, DARemoteService_Impl, + schContactosClient_Intf, uBusinessUtils; + +{ TBizClienteServer } + +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; + +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('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; + ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; + ParamByName('VENCIMIENTO_FACTURAS').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; + 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]; + + 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('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; + ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; + ParamByName('VENCIMIENTO_FACTURAS').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; + 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]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_CLIENTE, TBizClienteServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactos.pas b/Source/Modulos/Contactos/Model/uBizContactos.pas new file mode 100644 index 00000000..31b447e9 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactos.pas @@ -0,0 +1,628 @@ +unit uBizContactos; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf, uBizContactosDatosBancarios, uBizCategoriasContacto, + uDBSelectionListUtils, uBizDireccionesContacto, uBizAgentesComisiones, + uBizClientesDescuentos; + +const + BIZ_CLIENT_CONTACTO = 'Client.Contacto'; + BIZ_CLIENT_CLIENTE = 'Client.Cliente'; + BIZ_CLIENT_PROVEEDOR = 'Client.Proveedor'; + BIZ_CLIENT_AGENTE = 'Client.Agente'; + + CATEGORIA_CLIENTE = 1; + CATEGORIA_PROVEEDOR = 2; + CATEGORIA_AGENTE = 3; + + PROVEEDOR_REGIMEN_IVA = 'General'; + CLIENTE_REGIMEN_IVA = 'General'; + 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; + + function GetCategoria : String; + property Categoria : String read GetCategoria; + + function _GetCategorias: IBizCategoriasContacto; + procedure _SetCategorias(const Value: IBizCategoriasContacto); + property _Categorias : IBizCategoriasContacto read _GetCategorias + write _SetCategorias; + + 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 GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + + function GetVENCIMIENTO_FACTURASValue: Integer; + procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); + + 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 GetDescuentos: IBizClienteDescuentos; + procedure SetDescuentos(Value: IBizClienteDescuentos); + property Descuentos: IBizClienteDescuentos read GetDescuentos write SetDescuentos; + + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue; + 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; + 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 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); + + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + 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; + end; + + IBizAgente = interface (IBizContacto) + ['{C3288C4E-127F-4AC5-A668-4DA88B79683F}'] + function GetComisiones: IBizAgenteComisiones; + procedure SetComisiones(Value: IBizAgenteComisiones); + property Comisiones: IBizAgenteComisiones read GetComisiones write SetComisiones; + end; + + + + TBizContacto = class(TContactosDataTableRules, IBizContacto, ISeleccionable) + protected + FDatosBancarios : IBizContactosDatosBancarios; + FDatosBancariosLink : TDADataSource; + FCategorias : IBizCategoriasContacto; + FCategoriasLink : TDADataSource; + FDirecciones : IBizDireccionesContacto; + FDireccionesLink : TDADataSource; + + FSeleccionableInterface : ISeleccionable; + + function _GetCategorias: IBizCategoriasContacto; + procedure _SetCategorias(const Value: IBizCategoriasContacto); + + procedure SetDatosBancarios(AValue : IBizContactosDatosBancarios); + function GetDatosBancarios : IBizContactosDatosBancarios; + + function GetDirecciones: IBizDireccionesContacto; + procedure SetDirecciones(const Value: IBizDireccionesContacto); + + function GetCategoria : String; + + 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 _Categorias : IBizCategoriasContacto read _GetCategorias + write _SetCategorias; + + 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 GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + + function GetVENCIMIENTO_FACTURASValue: Integer; + procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); + + 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 GetDescuentos: IBizClienteDescuentos; + procedure SetDescuentos(Value: IBizClienteDescuentos); + public + procedure IniciarValoresContactoNuevo; override; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Descuentos: IBizClienteDescuentos read GetDescuentos write SetDescuentos; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue; + 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; + end; + + + TBizProveedor = class(TBizContacto, IBizProveedor) + protected + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + 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); + + public + procedure IniciarValoresContactoNuevo; override; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + 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; + end; + + + TBizAgente = class(TBizContacto, IBizAgente) + protected + FComisiones : IBizAgenteComisiones; + FComisionesLink : TDADataSource; + function GetComisiones: IBizAgenteComisiones; + procedure SetComisiones(Value: IBizAgenteComisiones); + public + procedure IniciarValoresContactoNuevo; override; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Comisiones: IBizAgenteComisiones read GetComisiones write SetComisiones; + end; + + +implementation + +uses + uDataTableUtils, Classes, DateUtils, SysUtils, uDataModuleUsuarios; + +{ TBizContacto } + +constructor TBizContacto.Create(aDataTable: TDADataTable); +begin + inherited; + FCategoriasLink := TDADataSource.Create(NIL); + FCategoriasLink.DataTable := aDataTable; + + FDatosBancariosLink := TDADataSource.Create(NIL); + FDatosBancariosLink.DataTable := aDataTable; + + FDireccionesLink := TDADataSource.Create(NIL); + FDireccionesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizContacto.Destroy; +begin + FCategorias := NIL; + FCategoriasLink.Free; + + FDatosBancarios := NIL; + FDatosBancariosLink.Free; + + FDirecciones := NIL; + FDireccionesLink.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 := 'Agente'; + end; +end; + +function TBizContacto.GetDatosBancarios: IBizContactosDatosBancarios; +begin + Result := FDatosBancarios; +end; + +function TBizContacto.GetDirecciones: IBizDireccionesContacto; +begin + Result := FDirecciones; +end; + +procedure TBizContacto.IniciarValoresContactoNuevo; +begin + // + USUARIO := dmUsuarios.LoginInfo.Usuario; +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; + +function TBizContacto._GetCategorias: IBizCategoriasContacto; +begin + Result := FCategorias; +end; + +procedure TBizContacto._SetCategorias(const Value: IBizCategoriasContacto); +begin + FCategorias := Value; + EnlazarMaestroDetalle(FCategoriasLink, FCategorias); +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.GetGRUPO_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString; +end; + +function TBizCliente.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_AGENTE].AsInteger; +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.SetGRUPO_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue; +end; + +procedure TBizCliente.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_AGENTE].AsInteger := 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_FACTURASValue: Integer; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger; +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_FACTURASValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger := aValue; +end; + +procedure TBizCliente.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_CLIENTE; + VENCIMIENTO_FACTURAS := CLIENTE_DIAS_VENCIMIENTO; + BLOQUEADO := 0; + RECARGO_EQUIVALENCIA := CLIENTE_RECARGO_EQUIVALENCIA; + REGIMEN_IVA := CLIENTE_REGIMEN_IVA; +end; + +{ TBizProveedor } + +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.GetTIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger; +end; + +procedure TBizProveedor.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_PROVEEDOR; + REGIMEN_IVA := PROVEEDOR_REGIMEN_IVA; +end; + +function TBizProveedor.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat; +end; + +procedure TBizProveedor.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := 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.SetTIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger := aValue; +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; + FComisionesLink.Free; + inherited; +end; + +function TBizAgente.GetComisiones: IBizAgenteComisiones; +begin + Result := FComisiones; +end; + +procedure TBizAgente.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_AGENTE; +end; + + +procedure TBizAgente.SetComisiones(Value: IBizAgenteComisiones); +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); + +finalization + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas b/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas new file mode 100644 index 00000000..91394223 --- /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 = dsInsert) then + AMasterTable.Post; +end; + +function TBizContactosDatosBancarios.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizContactosDatosBancarios.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_CONTACTOS_DATOS_BANCARIOS, TBizContactosDatosBancarios); + + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactosServer.pas b/Source/Modulos/Contactos/Model/uBizContactosServer.pas new file mode 100644 index 00000000..ba550975 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactosServer.pas @@ -0,0 +1,137 @@ +unit uBizContactosServer; + +interface + +uses + SysUtils, schContactosServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_CONTACTO = 'Server.Contacto'; + +type + TBizContactosServer = class(TContactosBusinessProcessorRules) + protected + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); virtual; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); virtual; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); virtual; + + 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, DARemoteService_Impl, + schContactosClient_Intf, uBusinessUtils; + +{ TBizContactosServer } + +procedure TBizContactosServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +begin + inherited; + + case aChange.ChangeType of + ctInsert: Insert_Datos_Contacto(aChange); + ctUpdate: Update_Datos_Contacto(aChange); + ctDelete: Delete_Datos_Contacto(aChange); + end; + + CanRemoveFromDelta := True; +end; + +procedure TBizContactosServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ContactosEmpresas'); + 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_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ContactosEmpresas'); + 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_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ContactosEmpresas'); + 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; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_CONTACTO, TBizContactosServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas b/Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas new file mode 100644 index 00000000..a1f7a5bf --- /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 = dsInsert) 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/uBizGruposCliente.pas b/Source/Modulos/Contactos/Model/uBizGruposCliente.pas new file mode 100644 index 00000000..349403b6 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizGruposCliente.pas @@ -0,0 +1,27 @@ +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) + end; + +implementation + +initialization + RegisterDataTableRules(BIZ_CLIENT_GRUPOSCLIENTE, TBizGrupoCliente); + +finalization + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas new file mode 100644 index 00000000..11e09a90 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas @@ -0,0 +1,112 @@ +unit uBizProveedoresServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_PROVEEDOR = 'Server.Proveedor'; + +type + TBizProveedorServer = class(TBizContactosServer) + protected + 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, DARemoteService_Impl, + schContactosClient_Intf, uBusinessUtils; + +{ TBizProveedorServer } + +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; + +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('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]; + 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('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]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PROVEEDOR, TBizProveedorServer); + +end. diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj b/Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj new file mode 100644 index 00000000..10ee2fba --- /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.dex b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dex new file mode 100644 index 00000000..4ab36310 --- /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 00000000..0b99147d --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dpk @@ -0,0 +1,54 @@ +package Contactos_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 + rtl, + vcl, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + Contactos_model, + Contactos_data, + Contactos_controller, + Contactos_view; + +contains + uPluginContactos in 'uPluginContactos.pas' {PluginContactos: TDataModule}; + +end. diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc b/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.rc b/Source/Modulos/Contactos/Plugin/Contactos_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.res b/Source/Modulos/Contactos/Plugin/Contactos_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/Contactos_plugin.res differ diff --git a/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm b/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm new file mode 100644 index 00000000..93c9d247 --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm @@ -0,0 +1,872 @@ +object PluginContactos: TPluginContactos + OldCreateOrder = True + Description = 'Ventas' + 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 + F80000000970485973000017120000171201679FD252000002744944415478DA + 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF + 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05 + AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC + 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082 + 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330 + 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3 + 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61 + E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC + 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525 + 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D + 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596 + 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18 + 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D + 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06 + 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229 + 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B + BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF + 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290 + E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0 + 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42 + 6082} + Name = 'PngImage1' + 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 = '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 + 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 = 'PngImage4' + 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 = SmallImages + Left = 40 + Top = 72 + object actClientes: TAction + Category = 'Ventas' + Caption = 'Clientes' + ImageIndex = 1 + OnExecute = actClientesExecute + end + object actProveedores: TAction + Category = 'Compras' + Caption = 'Proveedores' + ImageIndex = 2 + OnExecute = actProveedoresExecute + end + object actAgentes: TAction + Category = 'Ventas' + Caption = 'Agentes' + ImageIndex = 5 + OnExecute = actAgentesExecute + end + object actGruposCliente: TAction + Caption = 'Grupos de cliente' + ImageIndex = 7 + OnExecute = actGruposClienteExecute + end + end + object MainMenu: TMainMenu + Images = SmallImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Tag = 200 + Caption = '&Compras' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actProveedoresExecute + object Proveedores1: TMenuItem + Tag = 100 + Action = actProveedores + end + object N2: TMenuItem + Tag = 101 + Caption = '-' + end + end + object Ventas1: TMenuItem + Tag = 400 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 0 + object Resumen1: TMenuItem + Tag = 101 + Action = actClientes + end + object Vendedores1: TMenuItem + Tag = 100 + Action = actAgentes + end + object N4: TMenuItem + Tag = 103 + Caption = '-' + end + object DatosAuxiliares1: TMenuItem + Tag = 99999 + Caption = 'Datos auxiliares' + object GruposCliente1: TMenuItem + Tag = 1 + Action = actGruposCliente + end + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + 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 = '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 + 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 = 'PngImage4' + 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 + 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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000002F94944415478DAED946B48936114 + C7FFAFDA55CD5CD32E46609161D087082129E8B2794B50495B5EBE140C83A2CF + 5DD13E9804111195502441068D04D32C2DCD6181592D2F594CF2B291A6DB9C9A + 3AB3E9DE4BCFFB583ADBC539621FA2030FE7BCCF7B38BF739EFFF3BE8C2008F0 + A531FF81FF06F0C1538DCFA833C0ACE418AF0AB09C008EE389E7A9A7316F1753 + 4F72C8DEE16379738131992F3C06092C814D0AB05949C1499EC6A2E726391AF3 + 53FCF462593434C9A0EFEDC3D9C2DB8E408D4A3E079CBCAF1B79B9B92EC13CE9 + 9CA71371484C54A1B367250519BF1E8454A202C3F2A86F96A1B7DFE01A289A18 + 3B837D1CEE41526427584B3F0282D7A15ABF195181AB29505C29296568D70661 + 602083E64B034BA06E96A3DF64723FA13D6C7D481DB871330C5C268D4558EDE0 + 1EC449EB0874033A0CB1D8145401FFE070B4E9B7233DBD122FEB8F206CF93D90 + 2E50D3120FD3A0D939D0D951AEF55711D10418F82CACF12BA1B07869036A0677 + 412E7D8EAED14C44853CA1B96D2639148A2A68DFF95198B8AA5A1330343CE439 + 904E68311260CEAF097BC060290458E9849FBEEC40B4A49A4EA8698F46764E2D + B48DC20CB0A23901639611F740671746D4483BDA4735B459745814BC916A1881 + 20FA8EB5D91C60A29569E2F07D626CFE5BCA5A05A426E928542C68316A21E938 + E3F6735992B6172B264261669508636ED1BDD2B73258ADE3EE2714619C75F6FB + 12FDFD832711A3CCC754F8162C1EF83C9DA77B4CFD88DE40FDF9E216DC39B77F + 4E138F2CC7B12C34C21138DFDFA3AB681B56C91488DA79091D6F4ED35CB3BE89 + 7A3F5D37F5C56A036E141C70682223BFD111F8EC55ABDBE3EAEB7C8FADC6425A + D49919BE5971B5E894D32644E0CD6B57668197AFDF852716116841E58961B739 + CA8B6AFBC7F2F680D4B41F8C843E5020C3301EC1447B5D10292C5447D280A258 + 6D2DF51AE8A98EF60D1020E32DF01029984DC2341729E54795BBD3FE6CC02BA0 + 088B8D8D7EB800FD6803645D20C00FDE003DD2EFF734CE6CC1404FF4FB9BC079 + F5B33F3E97405F9ACF813F01DF078FC2BAE18F2B0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + 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 00000000..c857a93e --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/uPluginContactos.pas @@ -0,0 +1,120 @@ +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; + N2: TMenuItem; + actAgentes: TAction; + Vendedores1: TMenuItem; + N4: TMenuItem; + actGruposCliente: TAction; + procedure actClientesExecute(Sender: TObject); + procedure actProveedoresExecute(Sender: TObject); + procedure actAgentesExecute(Sender: TObject); + procedure actGruposClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uContactosController, + uClientesController, uProveedoresController, + uAgentesController, uGruposClienteController, uBizGruposCliente, + uContactosViewRegister, uBizContactos; + +function GetModule : TModuleController; +begin + Result := TPluginContactos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} +procedure TPluginContactos.actClientesExecute(Sender: TObject); +var + AClientesController : IClientesController; + AClientes : IBizCliente; +begin + AClientesController := TClientesController.Create; + AClientes := (AClientesController.BuscarTodos as IBizCliente); + AClientesController.VerTodos(AClientes); +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.actProveedoresExecute(Sender: TObject); +var + AProveedoresController : IProveedoresController; + AProveedores : IBizProveedor; +begin + AProveedoresController := TProveedoresController.Create; + AProveedores := (AProveedoresController.BuscarTodos as IBizProveedor); + AProveedoresController.VerTodos(AProveedores); +end; + +procedure TPluginContactos.actAgentesExecute(Sender: TObject); +var + AAgentesController : IAgentesController; + AAgentes : IBizAgente; +begin + AAgentesController := TAgentesController.Create; + AAgentes := (AAgentesController.BuscarTodos as IBizAgente); + AAgentesController.VerTodos(AAgentes); +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/Project1.mpb b/Source/Modulos/Contactos/Project1.mpb new file mode 100644 index 00000000..b27cc9b3 Binary files /dev/null and b/Source/Modulos/Contactos/Project1.mpb differ diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm new file mode 100644 index 00000000..c1037633 --- /dev/null +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm @@ -0,0 +1,4729 @@ +object srvContactos: TsrvContactos + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schContactos + ServiceAdapter = BINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 347 + Width = 444 + object schContactos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '22' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = + 'SELECT '#10' ID, ID_CATEGORIA, NIF_CIF, NOMBRE, CALLE, POBLACION,' + + ' '#10' PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,' + + ' '#10' MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, '#10' FE' + + 'CHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, '#10' REFERENC' + + 'IA'#10' FROM'#10' V_CONTACTOS'#10' WHERE'#10' ID_CATEGORIA = :ID_CATEGOR' + + 'IA' + 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 = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + SQLOrigin = 'CONTACTOS_CATEGORIAS.ID_CATEGORIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + SQLOrigin = 'EMPRESAS_CONTACTOS.ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end> + end> + Name = 'Contactos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_GRUPOS' + SQL = 'SELECT DESCRIPCION'#10'FROM CLIENTES_GRUPOS' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'GruposCliente' + Fields = < + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DATOS_BANCO' + SQL = + 'SELECT'#10' ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUEN' + + 'TA'#10' FROM'#10' CONTACTOS_DATOS_BANCO'#10' WHERE ID_CONTACTO = :ID_CO' + + 'NTACTO' + StatementType = stSQL + 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> + end> + Name = 'DatosBancarios' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_ID_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'DatosBancarios_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '444' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_CATEGORIAS' + SQL = + 'SELECT '#10' ID_CONTACTO, ID_CATEGORIA'#10' FROM'#10' CONTACTOS_CATEG' + + 'ORIAS'#10' WHERE'#10' ID_CONTACTO = :ID_CONTACTO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_CONTACTO' + TableField = 'ID_CONTACTO' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end> + end> + Name = 'ContactosCategorias' + Fields = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_CLIENTES' + SQL = + 'SELECT '#10' ID, ID_CATEGORIA, REFERENCIA, NIF_CIF, NOMBRE, CALLE' + + ', '#10' POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO' + + '_2, '#10' MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, '#10' ' + + ' NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, '#10 + + ' ID_AGENTE, GRUPO_CLIENTE, NOMBRE_COMERCIAL, VENCIMIENTO_FACT' + + 'URAS, '#10' BLOQUEADO, MOTIVO_BLOQUEO, RECARGO_EQUIVALENCIA, REGI' + + 'MEN_IVA, '#10' ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB'#10' FROM'#10' ' + + 'V_CLIENTES' + 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 = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'GRUPO_CLIENTE' + TableField = 'GRUPO_CLIENTE' + end + item + DatasetField = 'NOMBRE_COMERCIAL' + TableField = 'NOMBRE_COMERCIAL' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS' + TableField = 'VENCIMIENTO_FACTURAS' + end + item + DatasetField = 'BLOQUEADO' + TableField = 'BLOQUEADO' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REGIMEN_IVA' + TableField = 'REGIMEN_IVA' + end + item + DatasetField = 'MOTIVO_BLOQUEO' + TableField = 'MOTIVO_BLOQUEO' + 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> + end> + Name = 'Clientes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_GRUPO_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_NOMBRE_COMERCIAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENCIMIENTO_FACTURAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_VENCIMIENTO_FACTURAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BLOQUEADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_BLOQUEADO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_MOTIVO_BLOQUEO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_REGIMEN_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Clientes_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PROVEEDORES' + SQL = + 'SELECT '#10' ID, ID_CATEGORIA, REFERENCIA, NIF_CIF, NOMBRE, CALLE' + + ', '#10' POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO' + + '_2, '#10' MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, '#10' ' + + ' NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, '#10 + + ' REGIMEN_IVA, DESCUENTO, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_W' + + 'EB'#10' FROM'#10' V_PROVEEDORES' + 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 = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REGIMEN_IVA' + TableField = 'REGIMEN_IVA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end> + end> + Name = 'Proveedores' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Proveedores_REGIMEN_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Proveedores_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Proveedores_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Proveedores_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Proveedores_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES' + SQL = + 'SELECT '#10' ID, ID_CATEGORIA, REFERENCIA, NIF_CIF, NOMBRE, CALLE' + + ', '#10' POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO' + + '_2, '#10' MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, '#10' ' + + ' NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA'#10' ' + + 'FROM'#10' V_AGENTES' + 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 = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end> + end> + Name = 'Agentes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_CATEGORIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Contactos_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Agentes_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '9' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DIRECCIONES' + SQL = + 'SELECT'#10' ID, ID_CONTACTO, NOMBRE, CALLE, POBLACION, PROVINCIA,' + + ' CODIGO_POSTAL, PERSONA_CONTACTO,'#10' TELEFONO, EMAIL, NOTAS, PO' + + 'RTE, FECHA_ALTA, FECHA_MODIFICACION'#10' FROM'#10' CONTACTOS_DIRECCI' + + 'ONES'#10' WHERE ID_CONTACTO = :ID_CONTACTO' + StatementType = stSQL + 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 = '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 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_ID_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_EMAIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PORTE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'DireccionesContacto_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_COMISIONES' + SQL = + 'SELECT '#10' AGENTES_COMISIONES.ID, AGENTES_COMISIONES.ID_AGENTE,' + + #10' AGENTES_COMISIONES.ID_PROVEEDOR, CONTACTOS.NOMBRE,'#10' AGEN' + + 'TES_COMISIONES.COMISION'#10' FROM'#10' AGENTES_COMISIONES'#10' LEFT JOI' + + 'N CONTACTOS ON (CONTACTOS.ID = AGENTES_COMISIONES.ID_PROVEEDOR)'#10 + + 'WHERE AGENTES_COMISIONES.ID_AGENTE = :ID_AGENTE' + 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 = 'COMISION' + TableField = 'COMISION' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'AgentesComisiones' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AgentesComisiones_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AgentesComisiones_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'AgentesComisiones_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'AgentesComisiones_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DTOS_PROVEEDORES' + 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 CLIENT' + + 'ES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'ClientesDescuentos' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'ClientesDescuentos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'ClientesDescuentos_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'ClientesDescuentos_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ClientesDescuentos_NOMBRE' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'ClientesDescuentos_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = + 'INSERT'#10' INTO CONTACTOS'#10' (ID, NIF_CIF, NOMBRE, CALLE, POBLACI' + + 'ON, PROVINCIA, CODIGO_POSTAL,'#10' TELEFONO_1, TELEFONO_2, MOVIL' + + '_1, MOVIL_2, FAX, EMAIL_1, '#10' EMAIL_2, PAGINA_WEB, NOTAS, FEC' + + 'HA_ALTA, FECHA_MODIFICACION, '#10' USUARIO, REFERENCIA)'#10' VALUES' + + #10' (:ID, :NIF_CIF, :NOMBRE, :CALLE, :POBLACION, :PROVINCIA,'#10' ' + + ' :CODIGO_POSTAL, :TELEFONO_1, :TELEFONO_2, :MOVIL_1, '#10' :MO' + + 'VIL_2, :FAX, :EMAIL_1, :EMAIL_2, :PAGINA_WEB, :NOTAS, '#10' :FEC' + + 'HA_ALTA, :FECHA_MODIFICACION, :USUARIO, :REFERENCIA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Contactos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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 = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = + 'UPDATE CONTACTOS'#10' SET '#10' ID = :ID,'#10' NIF_CIF = :NIF_CIF, '#10' ' + + ' NOMBRE = :NOMBRE, '#10' CALLE = :CALLE, '#10' POBLACION = :POBL' + + 'ACION, '#10' PROVINCIA = :PROVINCIA, '#10' CODIGO_POSTAL = :CODIGO' + + '_POSTAL, '#10' TELEFONO_1 = :TELEFONO_1, '#10' TELEFONO_2 = :TELEF' + + 'ONO_2, '#10' MOVIL_1 = :MOVIL_1, '#10' MOVIL_2 = :MOVIL_2, '#10' FA' + + 'X = :FAX, '#10' EMAIL_1 = :EMAIL_1, '#10' EMAIL_2 = :EMAIL_2, '#10' ' + + ' PAGINA_WEB = :PAGINA_WEB, '#10' NOTAS = :NOTAS, '#10' FECHA_ALTA ' + + '= :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACION, '#10' ' + + ' USUARIO = :USUARIO,'#10' REFERENCIA = :REFERENCIA'#10' WHERE'#10' ' + + '(ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Contactos' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + 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_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'INSERT'#10' INTO EMPRESAS_CONTACTOS'#10' (ID_EMPRESA, ID_CONTACTO)'#10' ' + + ' VALUES'#10' (:ID_EMPRESA, :ID_CONTACTO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ContactosEmpresas' + end + item + Params = < + item + Name = 'OLD_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + 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_ContactosEmpresas' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + 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_ContactosEmpresas' + end + item + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VENCIMIENTO_FACTURAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BLOQUEADO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DATOS' + SQL = + 'INSERT'#10' INTO CLIENTES_DATOS'#10' (ID_CLIENTE, ID_AGENTE, GRUPO_C' + + 'LIENTE, RECARGO_EQUIVALENCIA,'#10' NOMBRE_COMERCIAL, VENCIMIENTO' + + '_FACTURAS, BLOQUEADO, MOTIVO_BLOQUEO,'#10' REGIMEN_IVA, ID_TIPO_' + + 'IVA, ID_FORMA_PAGO, TIENDA_WEB)'#10' VALUES'#10' (:ID_CLIENTE, :ID_A' + + 'GENTE, :GRUPO_CLIENTE, :RECARGO_EQUIVALENCIA,'#10' :NOMBRE_COMER' + + 'CIAL, :VENCIMIENTO_FACTURAS,'#10' :BLOQUEADO, :MOTIVO_BLOQUEO, :' + + 'REGIMEN_IVA,'#10' :ID_TIPO_IVA, :ID_FORMA_PAGO, :TIENDA_WEB)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ClientesDatos' + end + item + Params = < + item + Name = 'OLD_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VENCIMIENTO_FACTURAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BLOQUEADO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DATOS' + SQL = + 'UPDATE CLIENTES_DATOS'#10' SET '#10' ID_CLIENTE = :ID_CLIENTE, '#10' ' + + 'ID_AGENTE = :ID_AGENTE,'#10' GRUPO_CLIENTE = :GRUPO_CLIENTE,'#10' ' + + 'MOTIVO_BLOQUEO = :MOTIVO_BLOQUEO,'#10' RECARGO_EQUIVALENCIA = :RE' + + 'CARGO_EQUIVALENCIA,'#10' NOMBRE_COMERCIAL = :NOMBRE_COMERCIAL,'#10' ' + + ' VENCIMIENTO_FACTURAS = :VENCIMIENTO_FACTURAS,'#10' BLOQUEADO = ' + + ':BLOQUEADO,'#10' REGIMEN_IVA = :REGIMEN_IVA,'#10' ID_TIPO_IVA = :I' + + 'D_TIPO_IVA,'#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' TIENDA_WEB =' + + ' :TIENDA_WEB'#10' WHERE'#10' (ID_CLIENTE = :OLD_ID_CLIENTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ClientesDatos' + end + item + Params = < + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PROVEEDORES_DATOS' + SQL = + 'INSERT'#10' INTO PROVEEDORES_DATOS'#10' (ID_PROVEEDOR, REGIMEN_IVA, ' + + 'DESCUENTO, ID_TIPO_IVA,'#10' ID_FORMA_PAGO, TIENDA_WEB)'#10' VALUES'#10 + + ' (:ID_PROVEEDOR, :REGIMEN_IVA, :DESCUENTO, :ID_TIPO_IVA,'#10' ' + + ':ID_FORMA_PAGO, :TIENDA_WEB)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ProveedoresDatos' + end + item + Params = < + item + Name = 'OLD_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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' ' + + ' ID_TIPO_IVA = :ID_TIPO_IVA,'#10' ID_FORMA_PAGO = :ID_FORMA_PAG' + + 'O,'#10' TIENDA_WEB = :TIENDA_WEB'#10' WHERE'#10' (ID_PROVEEDOR = :OLD' + + '_ID_PROVEEDOR)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ProveedoresDatos' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + 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, EMAIL, NOTAS, PORTE, FECHA_ALTA, FECHA_MODIFICACI' + + 'ON)'#10' VALUES'#10' (:ID, :ID_CONTACTO, :NOMBRE, :CALLE, :POBLACION' + + ', :PROVINCIA, :CODIGO_POSTAL,'#10' :PERSONA_CONTACTO, :TELEFONO,' + + ' :EMAIL, :NOTAS, :PORTE, :FECHA_ALTA, :FECHA_MODIFICACION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_DireccionesContacto' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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' EMAIL = :EMAIL,'#10' NOTAS = :NOTAS,'#10' PO' + + 'RTE = :PORTE,'#10' FECHA_MODIFICACION = :FECHA_MODIFICACION'#10' WHE' + + 'RE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_DireccionesContacto' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AgentesComisiones' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_COMISIONES' + SQL = 'DELETE '#10' FROM'#10' AGENTES_COMISIONES'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AgentesComisiones' + end + item + Params = < + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COMISION' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_COMISIONES' + SQL = + 'UPDATE AGENTES_COMISIONES'#10' SET '#10' ID_AGENTE = :ID_AGENTE,'#10' ' + + ' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' COMISION = :COMISION'#10' WHERE' + + #10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AgentesComisiones' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Contactos' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Contactos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Contactos' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Contactos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert DatosBancarios' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'DatosBancarios' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update DatosBancarios' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'DatosBancarios' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert DireccionesContacto' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'DireccionesContacto' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update DireccionesContacto' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'DireccionesContacto' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert ContactosCategorias' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'ContactosCategorias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update ContactosCategorias' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'ContactosCategorias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert AgentesComisiones' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'AgentesComisiones' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update AgentesComisiones' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'AgentesComisiones' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert ClientesDescuentos' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'ClientesDescuentos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update ClientesDescuentos' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'ClientesDescuentos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete DatosBancarios' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'DatosBancarios' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete ClientesDescuentos' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'ClientesDescuentos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete AgentesComisiones' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'AgentesComisiones' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete DireccionesContacto' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'DireccionesContacto' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete ContactosCategorias' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'ContactosCategorias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Contactos' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Contactos' + FailureBehaviour = fbRaiseException + end> + Left = 30 + Top = 14 + end + object BINAdapter: TDABINAdapter + Left = 30 + Top = 82 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'DatosBancarios_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTACTO' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Titular' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de entidad' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de sucursal' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'D'#237'gito de control' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo de cuenta' + Alignment = taLeftJustify + end + item + Name = 'Contactos_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Contactos_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'Contactos_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + end + item + Name = 'Contactos_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Contactos_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Contactos_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'Contactos_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + end + item + Name = 'Contactos_TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. trabajo' + Alignment = taLeftJustify + end + item + Name = 'Contactos_TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tlf. particular' + Alignment = taLeftJustify + end + item + Name = 'Contactos_MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil' + Alignment = taLeftJustify + end + item + Name = 'Contactos_MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'MOVIL_2' + Alignment = taLeftJustify + end + item + Name = 'Contactos_FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + end + item + Name = 'Contactos_EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail trabajo' + Alignment = taLeftJustify + end + item + Name = 'Contactos_EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail particular' + Alignment = taLeftJustify + end + item + Name = 'Contactos_PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Web' + Alignment = taLeftJustify + end + item + Name = 'Contactos_NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'Contactos_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de alta' + Alignment = taLeftJustify + end + item + Name = 'Contactos_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de modificaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Contactos_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Usuario' + Alignment = taLeftJustify + end + item + Name = 'Contactos_ID_CATEGORIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Contactos_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_DISTRIBUYE' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Distribuye' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento (%)' + Alignment = taLeftJustify + end + item + Name = 'Clientes_ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_AGENTE' + Alignment = taLeftJustify + end + item + Name = 'Clientes_GRUPO_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo de cliente' + Alignment = taLeftJustify + end + item + Name = 'DatosBancarios_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo postal' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_ID_CONTACTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTACTO' + Alignment = taLeftJustify + end + item + Name = 'Clientes_NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre comercial' + Alignment = taLeftJustify + end + item + Name = 'Clientes_VENCIMIENTO_FACTURAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'Clientes_BLOQUEADO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Bloqueado?' + Alignment = taLeftJustify + end + item + Name = 'Contactos_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'Agentes_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'AgentesComisiones_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'AgentesComisiones_ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'AgentesComisiones_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'AgentesComisiones_COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Comisi'#243'n (%)' + Alignment = taRightJustify + end + item + Name = 'ClientesDescuentos_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'ClientesDescuentos_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'ClientesDescuentos_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'ClientesDescuentos_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento (%)' + Alignment = taRightJustify + end + item + Name = 'Clientes_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'Clientes_MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Motivo del bloqueo' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_EMAIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Notas' + Alignment = taLeftJustify + end + item + Name = 'DireccionesContacto_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Coste del porte' + Alignment = taLeftJustify + end + item + Name = 'Clientes_RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Rec. equiv.' + Alignment = taLeftJustify + end + item + Name = 'Clientes_REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'R'#233'gimen de IVA' + Alignment = taLeftJustify + end + item + Name = 'Clientes_ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_TIPO_IVA' + Alignment = taLeftJustify + end + item + Name = 'Clientes_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_REGIMEN_IVA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'R'#233'gimen de IVA' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_TIPO_IVA' + Alignment = taLeftJustify + end + item + Name = 'Proveedores_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end> + Left = 126 + Top = 14 + end + object Diagrams: TDADiagrams + Left = 126 + Top = 82 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object bpContactos: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + ReferencedDataset = 'Contactos' + ProcessorOptions = [poAutoGenerateRefreshDataset, 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 bpCategoriasContactos: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_ContactosCategorias' + DeleteCommandName = 'Delete_ContactosCategorias' + UpdateCommandName = 'Update_ContactosCategorias' + ReferencedDataset = 'ContactosCategorias' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 143 + end + object bpAgentes: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + ReferencedDataset = 'Agentes' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 15 + end + object bpClientes: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + ReferencedDataset = 'Clientes' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 143 + end + object bpProveedores: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + ReferencedDataset = 'Proveedores' + ProcessorOptions = [poAutoGenerateRefreshDataset, 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 bpAgentesComisiones: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_AgentesComisiones' + DeleteCommandName = 'Delete_AgentesComisiones' + UpdateCommandName = 'Update_AgentesComisiones' + ReferencedDataset = 'AgentesComisiones' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + 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 = 271 + 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 00000000..ef6182e8 --- /dev/null +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas @@ -0,0 +1,106 @@ +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:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAInterfaces, uDAScriptingProvider, + uDABusinessProcessor; + +type + { TsrvContactos } + TsrvContactos = class(TDARemoteService, IsrvContactos) + BINAdapter: TDABINAdapter; + Diagrams: TDADiagrams; + bpContactos: TDABusinessProcessor; + bpDatosBancarios: TDABusinessProcessor; + bpCategoriasContactos: TDABusinessProcessor; + bpAgentes: TDABusinessProcessor; + bpClientes: TDABusinessProcessor; + bpProveedores: TDABusinessProcessor; + bpDireccionesContacto: TDABusinessProcessor; + bpAgentesComisiones: TDABusinessProcessor; + bpClientesDescuentos: TDABusinessProcessor; + schContactos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + public + function GetNextAutoInc(const GeneratorName: string): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Dialogs, uBizContactosServer, + uDataModuleServer, uDatabaseUtils, uUsersManager, + schContactosClient_Intf, uRORemoteDataModule, uBizAgentesServer, + uBizClientesServer, uBizProveedoresServer, uRestriccionesUsuarioUtils; + +procedure Create_srvContactos(out anInstance : IUnknown); +begin + anInstance := TsrvContactos.Create(NIL); +end; + +{ TsrvContactos } + +procedure TsrvContactos.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvContactos.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if (DataSet.Name <> nme_DatosBancarios) and + (DataSet.Name <> nme_DireccionesContacto) and + (DataSet.Name <> nme_GruposCliente) and + (DataSet.Name <> nme_AgentesComisiones) and + (DataSet.Name <> nme_ClientesDescuentos) and + (DataSet.Name <> nme_ContactosCategorias) then + begin + { Aquí se asegura que el usuario sólo 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; + bpAgentes.BusinessRulesID := BIZ_SERVER_AGENTE; + bpClientes.BusinessRulesID := BIZ_SERVER_CLIENTE; + bpProveedores.BusinessRulesID := BIZ_SERVER_PROVEEDOR; +end; + +function TsrvContactos.GetNextAutoInc(const GeneratorName: string): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..5c4224da --- /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 00000000..88b99a2a --- /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.drc b/Source/Modulos/Contactos/Test/Contactos_Tests.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Test/Contactos_Tests.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Test/Contactos_Tests.res b/Source/Modulos/Contactos/Test/Contactos_Tests.res new file mode 100644 index 00000000..759b21ba Binary files /dev/null and b/Source/Modulos/Contactos/Test/Contactos_Tests.res differ diff --git a/Source/Modulos/Contactos/Test/Contactos_data.drc b/Source/Modulos/Contactos/Test/Contactos_data.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Contactos/Test/Contactos_data.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Contactos/Test/cxIntlPrintSys3D10.drc b/Source/Modulos/Contactos/Test/cxIntlPrintSys3D10.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Contactos/Test/cxIntlPrintSys3D10.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Contactos/Test/uClientesController_test.pas b/Source/Modulos/Contactos/Test/uClientesController_test.pas new file mode 100644 index 00000000..b5b7a705 --- /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 Vicálvaro, 47 2ºC'; + 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 00000000..190dc72c --- /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 válido ID=%d', [ID])); + CheckEquals('Cliente', Categoria); + + NIF_CIF := '1234567890-X'; + NOMBRE := 'David Arranz Puerta'; + CALLE := 'Dehesa de Vicálvaro, 47 2ºC'; + 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 válido 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 00000000..1de986c4 --- /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 00000000..f036830a --- /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/Test/vclie.drc b/Source/Modulos/Contactos/Test/vclie.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Contactos/Test/vclie.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas b/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas new file mode 100644 index 00000000..d6c240cb --- /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_controller.drc b/Source/Modulos/Contactos/Views/Contactos_controller.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_controller.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Contactos/Views/Contactos_view.bdsproj b/Source/Modulos/Contactos/Views/Contactos_view.bdsproj new file mode 100644 index 00000000..c1f237f8 --- /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.dpk b/Source/Modulos/Contactos/Views/Contactos_view.dpk new file mode 100644 index 00000000..11d7dcfe --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.dpk @@ -0,0 +1,117 @@ +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, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + tbx_d10, + tb2k_d10, + dsnap, + adortl, + dxLayoutControlD10, + dxComnD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + JvAppFrmD10R, + JvPageCompsD10R, + PNG_D10, + PngComponentsD10, + GUISDK_D10, + ccpack10, + cfpack_d10, + DataAbstract_D10, + Base, + GUIBase, + FormasPago_model, + FormasPago_controller, + TiposIVA_model, + TiposIVA_controller, + Contactos_model, + Contactos_controller, + JvCtrlsD10R, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + JvCustomD10R; + +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}, + uViewCliente in 'uViewCliente.pas' {frViewCliente: TCustomView}, + uViewDatosYSeleccionProveedor in 'uViewDatosYSeleccionProveedor.pas' {frViewDatosYSeleccionProveedor: TFrame}, + uViewProveedores in 'uViewProveedores.pas' {frViewProveedores: TCustomView}, + uViewAgentes in 'uViewAgentes.pas' {frViewVendedores: TCustomView}, + uEditorProveedores in 'uEditorProveedores.pas' {fEditorProveedores: TCustomEditor}, + uEditorAgentes in 'uEditorAgentes.pas' {fEditorVendedores: TCustomEditor}, + uViewProveedor in 'uViewProveedor.pas' {frViewProveedor: TCustomView}, + uViewAgente in 'uViewAgente.pas' {frViewAgente: TCustomView}, + uEditorProveedor in 'uEditorProveedor.pas' {fEditorProveedor: TCustomEditor}, + uEditorAgente in 'uEditorAgente.pas' {fEditorVendedor: 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}, + uViewAgenteComisiones in 'uViewAgenteComisiones.pas' {frAgenteComisiones: TFrame}, + uViewClienteDescuentos in 'uViewClienteDescuentos.pas' {frViewClienteDescuentos: TFrame}, + uEditorDireccion in 'uEditorDireccion.pas' {fEditorDireccion}, + uEditorElegirDireccionEntrega in 'uEditorElegirDireccionEntrega.pas' {fEditorElegirDireccionEntrega: TfEditorElegirDireccionEntrega}, + uViewContactoDatosBancarios in 'uViewContactoDatosBancarios.pas' {frViewClienteDatosBancarios: TFrame}, + uViewProveedorDatosComerciales in 'uViewProveedorDatosComerciales.pas' {frViewProveedorDatosComerciales: TFrame}, + uViewClienteDatosComerciales in 'uViewClienteDatosComerciales.pas' {frViewClienteDatosComerciales: TFrame}, + uEditorGruposCliente in 'uEditorGruposCliente.pas' {fEditorGruposCliente: TCustomEditor}; + +end. diff --git a/Source/Modulos/Contactos/Views/Contactos_view.drc b/Source/Modulos/Contactos/Views/Contactos_view.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Contactos/Views/Contactos_view.rc b/Source/Modulos/Contactos/Views/Contactos_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Contactos/Views/Contactos_view.res b/Source/Modulos/Contactos/Views/Contactos_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Contactos/Views/Contactos_view.res differ diff --git a/Source/Modulos/Contactos/Views/uContactosViewRegister.pas b/Source/Modulos/Contactos/Views/uContactosViewRegister.pas new file mode 100644 index 00000000..ee429237 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uContactosViewRegister.pas @@ -0,0 +1,56 @@ +unit uContactosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, + uEditorClientes, uEditorProveedores, + uEditorAgentes, uEditorElegirCLientes, + uEditorCliente, uEditorProveedor, + uEditorAgente, uEditorElegirProveedores, uEditorDireccion, + uEditorElegirDireccionEntrega, uEditorGruposCliente; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorClientes, 'EditorClientes'); + EditorRegistry.RegisterClass(TfEditorProveedores, 'EditorProveedores'); + EditorRegistry.RegisterClass(TfEditorAgentes, 'EditorAgentes'); + + EditorRegistry.RegisterClass(TfEditorCliente, 'EditorCliente'); + EditorRegistry.RegisterClass(TfEditorProveedor, 'EditorProveedor'); + EditorRegistry.RegisterClass(TfEditorAgente, 'EditorAgente'); + + EditorRegistry.RegisterClass(TfEditorElegirClientes, 'EditorElegirClientes'); + EditorRegistry.RegisterClass(TfEditorElegirProveedores, 'EditorElegirProveedores'); + + EditorRegistry.RegisterClass(TfEditorDireccion, 'EditorDireccion'); + EditorRegistry.RegisterClass(TfEditorElegirDireccionEntrega, 'EditorElegirDireccionEntrega'); + + EditorRegistry.RegisterClass(TfEditorGruposCliente, 'EditorGruposCliente'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorClientes); + EditorRegistry.UnRegisterClass(TfEditorProveedores); + EditorRegistry.UnRegisterClass(TfEditorAgentes); + + EditorRegistry.UnRegisterClass(TfEditorCliente); + EditorRegistry.UnRegisterClass(TfEditorProveedor); + EditorRegistry.UnRegisterClass(TfEditorAgente); + + EditorRegistry.UnRegisterClass(TfEditorElegirClientes); + EditorRegistry.UnRegisterClass(TfEditorElegirProveedores); + + EditorRegistry.UnRegisterClass(TfEditorDireccion); + EditorRegistry.UnRegisterClass(TfEditorElegirDireccionEntrega); + + EditorRegistry.UnRegisterClass(TfEditorGruposCliente); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.dfm b/Source/Modulos/Contactos/Views/uEditorAgente.dfm new file mode 100644 index 00000000..d43fbd87 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgente.dfm @@ -0,0 +1,288 @@ +inherited fEditorAgente: TfEditorAgente + Caption = 'fEditorAgente' + ClientHeight = 498 + ExplicitWidth = 320 + ExplicitHeight = 532 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + 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} + end + end + inherited pgPaginas: TPageControl + Height = 403 + ActivePage = pagDatosBancarios + ExplicitHeight = 403 + inherited pagGeneral: TTabSheet + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 375 + inline frViewAgente1: TfrViewAgente + Left = 0 + Top = 0 + Width = 624 + Height = 375 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 624 + ExplicitHeight = 375 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 624 + Height = 375 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 624 + ExplicitHeight = 375 + inherited PngSpeedButton1: TPngSpeedButton + Left = 579 + Top = 218 + ExplicitLeft = 579 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 579 + Top = 190 + ExplicitLeft = 579 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 579 + Top = 162 + ExplicitLeft = 579 + ExplicitTop = 162 + end + inherited eCalle: TcxDBTextEdit + Top = 165 + ExplicitTop = 165 + ExplicitWidth = 174 + Width = 174 + end + inherited eProvincia: TcxDBTextEdit + Top = 219 + ExplicitTop = 219 + ExplicitWidth = 174 + Width = 174 + end + inherited ePoblacion: TcxDBTextEdit + Top = 192 + ExplicitTop = 192 + ExplicitWidth = 108 + Width = 108 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 278 + Top = 192 + ExplicitLeft = 278 + ExplicitTop = 192 + end + inherited eObservaciones: TcxDBMemo + Top = 270 + ExplicitTop = 270 + ExplicitWidth = 185 + ExplicitHeight = 148 + Height = 148 + Width = 185 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 466 + Top = 57 + ExplicitLeft = 466 + ExplicitTop = 57 + ExplicitWidth = 172 + Width = 172 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 466 + Top = 30 + ExplicitLeft = 466 + ExplicitTop = 30 + ExplicitWidth = 172 + Width = 172 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 466 + Top = 84 + ExplicitLeft = 466 + ExplicitTop = 84 + ExplicitWidth = 172 + Width = 172 + end + inherited eFax: TcxDBTextEdit + Left = 466 + Top = 111 + ExplicitLeft = 466 + ExplicitTop = 111 + ExplicitWidth = 172 + Width = 172 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 263 + Width = 263 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 198 + Top = 30 + ExplicitLeft = 198 + ExplicitTop = 30 + ExplicitWidth = 194 + Width = 194 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 466 + Top = 162 + Properties.Prefix = 'mailto:' + ExplicitLeft = 466 + ExplicitTop = 162 + ExplicitWidth = 129 + Width = 129 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 466 + Top = 190 + Properties.Prefix = 'mailto:' + ExplicitLeft = 466 + ExplicitTop = 190 + ExplicitWidth = 165 + Width = 165 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 466 + Top = 217 + ExplicitLeft = 466 + ExplicitTop = 217 + ExplicitWidth = 165 + Width = 165 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 100 + Width = 100 + end + end + inherited dsContacto: TDADataSource + Left = 8 + Top = 64 + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitHeight = 375 + inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios + Height = 375 + ExplicitHeight = 375 + inherited dxLayoutControl1: TdxLayoutControl + LookAndFeel = dxLayoutOfficeLookAndFeel + inherited eEntidad: TcxDBTextEdit + ExplicitWidth = 114 + Width = 114 + end + inherited eSucursal: TcxDBTextEdit + ExplicitWidth = 112 + Width = 112 + end + inherited eCuenta: TcxDBTextEdit + ExplicitWidth = 194 + Width = 194 + end + inherited eTitular: TcxDBTextEdit + ExplicitWidth = 194 + Width = 194 + end + end + end + end + object TabSheet1: TTabSheet + Caption = 'Comisiones' + ImageIndex = 1 + inline frAgenteComisiones1: TfrAgenteComisiones + Left = 0 + Top = 0 + Width = 624 + Height = 375 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 624 + ExplicitHeight = 375 + inherited cxGrid: TcxGrid + Width = 624 + Height = 350 + ExplicitWidth = 624 + ExplicitHeight = 350 + end + inherited ToolBar1: TToolBar + Width = 624 + ExplicitWidth = 624 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 479 + ExplicitTop = 479 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.pas b/Source/Modulos/Contactos/Views/uEditorAgente.pas new file mode 100644 index 00000000..37c99571 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgente.pas @@ -0,0 +1,75 @@ +unit uEditorAgente; + +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, + uViewAgente, uBizContactos, + uIEditorAgente, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, + uViewDetallesGenerico, uViewAgenteComisiones, uViewContactoDatosBancarios, + dxLayoutLookAndFeels; + +type + TfEditorAgente = class(TfEditorContacto, IEditorAgente) + frViewAgente1: TfrViewAgente; + TabSheet1: TTabSheet; + frAgenteComisiones1: TfrAgenteComisiones; + 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 + uEditorDBItem, uDialogUtils; + +{$R *.dfm} + +{ TfEditorAgente } + +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.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(FContacto) then + begin + frAgenteComisiones1.dsDetalles.DataTable := (FContacto as IBizAgente).Comisiones.DataTable; + end; + +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorAgentes.dfm b/Source/Modulos/Contactos/Views/uEditorAgentes.dfm new file mode 100644 index 00000000..8d5da3c6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgentes.dfm @@ -0,0 +1,145 @@ +inherited fEditorAgentes: TfEditorAgentes + Caption = 'fEditorAgentes' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de agentes' + inherited Image1: TImage + 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} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + inherited TBXItem2: TTBXItem + ImageIndex = 0 + Images = frViewAgentes1.PngImageList + end + end + end + inline frViewAgentes1: TfrViewAgentes [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 = 323 + ExplicitWidth = 543 + ExplicitHeight = 323 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 agentes' + Kind = skCount + FieldName = 'ID' + Column = frViewAgentes1.cxGridViewNIF_CIF + 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 + inherited PngImageList: TPngImageList + PngImages = < + 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 = 'PngImage0' + Background = clWindow + end> + Left = 224 + Top = 128 + Bitmap = {} + end + end + inherited EditorActionList: TActionList [4] + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorAgentes.pas b/Source/Modulos/Contactos/Views/uEditorAgentes.pas new file mode 100644 index 00000000..8333bb5b --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgentes.pas @@ -0,0 +1,52 @@ +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; + +type + TfEditorAgentes = class(TfEditorContactos, IEditorAgentes) + frViewAgentes1: TfrViewAgentes; + protected + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uEditorGridBase, uDataModuleUsuarios, uDialogUtils; + +{$R *.dfm} + +constructor TfEditorAgentes.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewAgentes1; +end; + +procedure TfEditorAgentes.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este agente?', '') = IDYES) then + inherited; +end; + +procedure TfEditorAgentes.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de agentes - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.dfm b/Source/Modulos/Contactos/Views/uEditorCliente.dfm new file mode 100644 index 00000000..ef27b39c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorCliente.dfm @@ -0,0 +1,999 @@ +inherited fEditorCliente: TfEditorCliente + Left = 387 + Top = 297 + Caption = 'Ficha de cliente' + ClientHeight = 585 + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 619 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Caption = 'Ficha de cliente' + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + 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 + end + inherited TBXDock: TTBXDock + Width = 656 + ExplicitWidth = 656 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 440 + object TBXItem7: TTBXItem [7] + Action = actGruposCliente + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited pgPaginas: TPageControl + Width = 656 + Height = 490 + ActivePage = pagDatosComerciales + ExplicitWidth = 656 + ExplicitHeight = 490 + inherited pagGeneral: TTabSheet + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 648 + ExplicitHeight = 462 + inline frViewCliente1: TfrViewCliente + Left = 0 + Top = 0 + Width = 648 + Height = 462 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 648 + Height = 462 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited PngSpeedButton1: TPngSpeedButton + Left = 603 + Top = 218 + ExplicitLeft = 603 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 603 + Top = 190 + ExplicitLeft = 603 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 603 + Top = 162 + ExplicitLeft = 603 + ExplicitTop = 162 + end + inherited Label1: TLabel + Left = 429 + Top = 270 + Width = 269 + ExplicitLeft = 429 + ExplicitTop = 270 + ExplicitWidth = 269 + end + inherited eCalle: TcxDBTextEdit + Top = 261 + ExplicitTop = 261 + ExplicitWidth = 268 + Width = 268 + end + inherited eProvincia: TcxDBTextEdit + Top = 315 + ExplicitTop = 315 + ExplicitWidth = 268 + Width = 268 + end + inherited ePoblacion: TcxDBTextEdit + Top = 288 + ExplicitTop = 288 + ExplicitWidth = 78 + Width = 78 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 336 + Top = 288 + ExplicitLeft = 336 + ExplicitTop = 288 + end + inherited eObservaciones: TcxDBMemo + Top = 366 + ExplicitTop = 366 + ExplicitWidth = 587 + ExplicitHeight = 33 + Height = 33 + Width = 587 + end + inherited eNombreComercial: TcxDBTextEdit + Top = 84 + ExplicitTop = 84 + ExplicitWidth = 265 + Width = 265 + end + inherited cbClienteBloqueado: TcxDBCheckBox + Top = 183 + ExplicitTop = 183 + ExplicitWidth = 163 + Width = 163 + end + inherited cbGrupoCliente: TcxDBComboBox + Top = 111 + ExplicitTop = 111 + ExplicitWidth = 40 + Width = 40 + end + inherited eBloqueo: TcxDBTextEdit + Top = 210 + ExplicitTop = 210 + ExplicitWidth = 205 + Width = 205 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 524 + Top = 57 + ExplicitLeft = 524 + ExplicitTop = 57 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 524 + Top = 30 + ExplicitLeft = 524 + ExplicitTop = 30 + ExplicitWidth = 127 + Width = 127 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 524 + Top = 84 + ExplicitLeft = 524 + ExplicitTop = 84 + ExplicitWidth = 140 + Width = 140 + end + inherited eFax: TcxDBTextEdit + Left = 524 + Top = 111 + ExplicitLeft = 524 + ExplicitTop = 111 + ExplicitWidth = 121 + Width = 121 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 158 + Width = 158 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 220 + Top = 30 + ExplicitLeft = 220 + ExplicitTop = 30 + ExplicitWidth = 268 + Width = 268 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 524 + Top = 162 + Properties.Prefix = 'mailto:' + ExplicitLeft = 524 + ExplicitTop = 162 + ExplicitWidth = 121 + Width = 121 + end + inherited cxDBCheckBox1: TcxDBCheckBox + Left = 429 + Top = 315 + ExplicitLeft = 429 + ExplicitTop = 315 + ExplicitWidth = 275 + Width = 275 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 524 + Top = 190 + Properties.Prefix = 'mailto:' + ExplicitLeft = 524 + ExplicitTop = 190 + ExplicitWidth = 121 + Width = 121 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 524 + Top = 217 + ExplicitLeft = 524 + ExplicitTop = 217 + ExplicitWidth = 121 + Width = 121 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 102 + Width = 102 + end + end + inherited dsContacto: TDADataSource + Left = 24 + Top = 56 + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios + Width = 648 + Height = 462 + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited dxLayoutControl1: TdxLayoutControl + Width = 648 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 648 + inherited eSucursal: TcxDBTextEdit + Left = 418 + ExplicitLeft = 418 + end + end + end + end + object pagDatosComerciales: TTabSheet + Caption = 'Datos comerciales' + ImageIndex = 4 + inline frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales + Left = 0 + Top = 0 + Width = 648 + 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 = 648 + ExplicitHeight = 193 + inherited dxLayoutControl1: TdxLayoutControl + Width = 648 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 648 + inherited Label1: TLabel + Left = 397 + Top = 30 + Width = 206 + Height = 39 + ExplicitLeft = 397 + ExplicitTop = 30 + ExplicitWidth = 206 + ExplicitHeight = 39 + end + inherited eAgente: TcxDBLookupComboBox + Top = 162 + ExplicitTop = 162 + ExplicitWidth = 197 + Width = 197 + end + inherited eDiasVencimiento: TcxDBSpinEdit + Left = 464 + Top = 75 + ExplicitLeft = 464 + ExplicitTop = 75 + ExplicitWidth = 160 + Width = 160 + end + inherited cbRegimenIVA: TcxDBComboBox + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 121 + Width = 121 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 111 + ExplicitTop = 111 + ExplicitWidth = 121 + Width = 121 + end + inherited cbFormaPago: TcxDBLookupComboBox + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 121 + Width = 121 + end + inherited bFormasPago: TButton + Left = 237 + Top = 57 + ExplicitLeft = 237 + ExplicitTop = 57 + end + inherited eIVA: TcxDBLookupComboBox + Top = 84 + ExplicitTop = 84 + ExplicitWidth = 121 + Width = 121 + end + inherited bTiposIVA: TButton + Left = 237 + Top = 84 + ExplicitLeft = 237 + ExplicitTop = 84 + end + end + end + end + object pagDirecciones: TTabSheet + Caption = 'Direcciones' + ImageIndex = 1 + inline frViewDireccionesEntrega1: TfrViewDireccionesEntrega + Left = 0 + Top = 0 + Width = 648 + Height = 462 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited cxGrid: TcxGrid + Width = 648 + Height = 437 + ExplicitWidth = 648 + ExplicitHeight = 437 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewID: TcxGridDBColumn + SortIndex = 0 + SortOrder = soAscending + end + end + end + inherited ToolBar1: TToolBar + Width = 648 + ExplicitWidth = 648 + 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 + Caption = 'Descuentos' + ImageIndex = 2 + inline frViewClienteDescuentos1: TfrViewClienteDescuentos + Left = 0 + Top = 0 + Width = 648 + Height = 462 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 648 + ExplicitHeight = 462 + inherited cxGrid: TcxGrid + Width = 648 + Height = 437 + ExplicitWidth = 648 + ExplicitHeight = 437 + end + inherited ToolBar1: TToolBar + Width = 648 + ExplicitWidth = 648 + 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 = 566 + Width = 656 + ExplicitTop = 566 + ExplicitWidth = 656 + end + inherited EditorActionList: TActionList + object actGruposCliente: TAction + Category = 'Acciones' + Caption = 'Grupos de cliente' + ImageIndex = 21 + OnExecute = actGruposClienteExecute + end + end + inherited dsDataTable: TDADataSource + Left = 16 + Top = 240 + end + inherited StatusBarImages: TPngImageList + Left = 48 + Top = 248 + 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/uEditorCliente.pas b/Source/Modulos/Contactos/Views/uEditorCliente.pas new file mode 100644 index 00000000..a8f83cf4 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorCliente.pas @@ -0,0 +1,116 @@ +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, uViewAgente, + uViewDireccionesEntrega, uViewDetallesGenerico, uViewClienteDescuentos, + uViewContactoDatosBancarios, dxLayoutLookAndFeels, + uViewClienteDatosComerciales; + +type + TfEditorCliente = class(TfEditorContacto, IEditorCliente) + frViewCliente1: TfrViewCliente; + pagDirecciones: TTabSheet; + frViewDireccionesEntrega1: TfrViewDireccionesEntrega; + actGruposCliente: TAction; + TBXItem7: TTBXItem; + pagDescuentos: TTabSheet; + frViewClienteDescuentos1: TfrViewClienteDescuentos; + pagDatosComerciales: TTabSheet; + frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales; + procedure FormShow(Sender: TObject); + procedure actGruposClienteExecute(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; + + +{$R *.dfm} + +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.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm new file mode 100644 index 00000000..5e3ff109 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -0,0 +1,1545 @@ +inherited fEditorClientes: TfEditorClientes + Left = 441 + Top = 313 + Caption = 'Lista de clientes' + ClientHeight = 519 + ClientWidth = 786 + ExplicitWidth = 794 + ExplicitHeight = 553 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 786 + Caption = 'Lista de clientes' + ExplicitWidth = 786 + inherited Image1: TImage + Left = 759 + 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 = 786 + ExplicitWidth = 786 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 623 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 786 + end + end + inherited StatusBar: TJvStatusBar + Top = 500 + Width = 786 + ExplicitTop = 500 + ExplicitWidth = 786 + end + inline frViewClientes1: TfrViewClientes [3] + Left = 0 + Top = 102 + Width = 786 + 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 = 786 + ExplicitHeight = 398 + inherited cxGrid: TcxGrid + Width = 786 + Height = 296 + ExplicitWidth = 786 + ExplicitHeight = 296 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + end + item + Format = '0 clientes' + Kind = skCount + Column = frViewClientes1.cxGridViewNIF_CIF + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 786 + ExplicitWidth = 786 + inherited TBXDock1: TTBXDock + Width = 786 + ExplicitWidth = 786 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 786 + inherited dxLayoutControl1: TdxLayoutControl + Width = 782 + ExplicitWidth = 782 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 481 + ExplicitLeft = 481 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 782 + ExplicitWidth = 782 + inherited tbxBotones: TTBXToolbar + Width = 772 + ExplicitWidth = 772 + end + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.793539675930000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewClientes1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + inherited PngImageList: TPngImageList + Left = 104 + end + end + inherited EditorActionList: TActionList [4] + Left = 56 + Top = 144 + inherited actNuevo: TAction + ImageIndex = 22 + end + object actGruposCliente: TAction + Category = 'Acciones' + Caption = 'Grupos de cliente' + ImageIndex = 23 + OnExecute = actGruposClienteExecute + 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> + 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> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas new file mode 100644 index 00000000..0d0d28cc --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas @@ -0,0 +1,77 @@ +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; + +type + TfEditorClientes = class(TfEditorContactos, IEditorClientes) + frViewClientes1: TfrViewClientes; + actGruposCliente: TAction; + procedure actGruposClienteExecute(Sender: TObject); + protected + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uDataModuleContactos, uDataModuleBase, uEditorGridBase, uBizContactos, + uDBSelectionListUtils, uDataModuleUsuarios, uDialogUtils, + uGruposClienteController, uBizGruposCliente; + +{$R *.dfm} + + +{ +******************************* TfEditorClientes ******************************* +} +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; //CreateView(TfrViewClientes) as IViewContactos; +end; + +procedure TfEditorClientes.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este cliente?', '') = IDYES) then + inherited; +end; + +procedure TfEditorClientes.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de clientes - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorContacto.dfm b/Source/Modulos/Contactos/Views/uEditorContacto.dfm new file mode 100644 index 00000000..f9f7001d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContacto.dfm @@ -0,0 +1,184 @@ +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 = 605 + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 324 + 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 = 632 + ExplicitWidth = 632 + inherited pagGeneral: TTabSheet + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 624 + ExplicitHeight = 0 + end + object pagDatosBancarios: TTabSheet + Caption = 'Datos bancarios' + ImageIndex = 1 + inline frViewClienteDatosBancarios: TfrViewClienteDatosBancarios + Left = 0 + Top = 0 + Width = 624 + 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 = 624 + ExplicitHeight = 338 + inherited dxLayoutControl1: TdxLayoutControl + Width = 624 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 624 + inherited eEntidad: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 114 + Width = 114 + end + inherited eSucursal: TcxDBTextEdit + Left = 405 + Top = 57 + ExplicitLeft = 405 + ExplicitTop = 57 + ExplicitWidth = 112 + Width = 112 + end + inherited eCuenta: TcxDBTextEdit + Top = 84 + ExplicitTop = 84 + ExplicitWidth = 194 + Width = 194 + end + inherited eDC: TcxDBTextEdit + Top = 84 + ExplicitTop = 84 + end + inherited eTitular: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 194 + Width = 194 + 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 00000000..927b27ae --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContacto.pas @@ -0,0 +1,179 @@ +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; + +type + TfEditorContacto = class(TfEditorDBItem, IEditorContacto) + pagDatosBancarios: TTabSheet; + frViewClienteDatosBancarios: TfrViewClienteDatosBancarios; + dxLayoutLookAndFeel: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel: TdxLayoutOfficeLookAndFeel; + 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 + uCustomEditor, uDataModuleContactos, uDataModuleBase, 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 + ' (' + dmUsuarios.EmpresaActual.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; + frViewClienteDatosBancarios.dsDatosBancarios.DataTable := FContacto.DatosBancarios.DataTable; + end + else + frViewClienteDatosBancarios.dsDatosBancarios.DataTable := NIL; +end; + +procedure TfEditorContacto.SetController(const Value: IContactosController); +begin + FController := Value; +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 ningún 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.dfm b/Source/Modulos/Contactos/Views/uEditorContactos.dfm new file mode 100644 index 00000000..121e6d61 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContactos.dfm @@ -0,0 +1,39 @@ +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 tbxMain: TTBXToolbar + ExplicitWidth = 543 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 260 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + end + inherited EditorActionList: TActionList + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + end + inherited GridPopupMenu: TPopupMenu + inherited Duplicar1: TMenuItem + Visible = 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 00000000..97aad4a2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContactos.pas @@ -0,0 +1,166 @@ +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, uDataModuleBase, 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; + +type + TfEditorContactos = class(TfEditorGridBase, IEditorContactos) + 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, + uEditorDBBase, uDataModuleUsuarios, + 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 ningún 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 - ' + dmUsuarios.EmpresaActual.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; + 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 operación 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/uEditorDireccion.dfm b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm new file mode 100644 index 00000000..addf633c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm @@ -0,0 +1,277 @@ +object fEditorDireccion: TfEditorDireccion + Left = 227 + Top = 108 + ActiveControl = eNombre + BorderStyle = bsDialog + Caption = 'Cambiar datos de la direcci'#243'n' + ClientHeight = 493 + ClientWidth = 433 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 433 + 493) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 8 + Width = 329 + Height = 473 + 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 = 275 + 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 = 278 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Correo electr'#243'nico:' + end + object Label9: TLabel + Left = 21 + Top = 318 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Notas:' + end + object Bevel2: TBevel + Left = 20 + Top = 424 + Width = 306 + Height = 9 + Shape = bsBottomLine + end + object Label10: TLabel + Left = 21 + Top = 446 + Width = 156 + Height = 13 + AutoSize = False + Caption = 'Coste del env'#237'o a esta direcci'#243'n:' + end + object OKBtn: TButton + Left = 350 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 350 + 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 = 275 + 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 = 315 + Width = 190 + Height = 94 + DataField = 'NOTAS' + DataSource = dsDireccion + ScrollBars = ssVertical + TabOrder = 10 + end + object ePortes: TcxDBCurrencyEdit + Left = 183 + Top = 443 + 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 + Width = 143 + 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 00000000..3e6fa3d4 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.pas @@ -0,0 +1,126 @@ +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; + +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; + Bevel2: TBevel; + Label10: TLabel; + ePortes: TcxDBCurrencyEdit; + 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.dfm b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm new file mode 100644 index 00000000..4ecebd75 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm @@ -0,0 +1,595 @@ +inherited fEditorElegirClientes: TfEditorElegirClientes + Caption = 'Seleccionar el cliente' + ClientWidth = 683 + ExplicitWidth = 691 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 683 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el cliente') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = True + ExplicitLeft = 16 + ExplicitTop = 8 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 683 + Visible = False + ExplicitWidth = 683 + inherited Image1: TImage + Left = 656 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 683 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 683 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 117 + Top = 23 + DockPos = 96 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 683 + end + end + inherited StatusBar: TJvStatusBar + Width = 683 + Visible = False + ExplicitWidth = 683 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + 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 + inherited frViewClientes1: TfrViewClientes [5] + Top = 136 + Width = 683 + Height = 328 + Padding.Left = 10 + Padding.Top = 10 + Padding.Right = 10 + Padding.Bottom = 5 + TabOrder = 4 + ExplicitTop = 136 + ExplicitWidth = 683 + ExplicitHeight = 328 + inherited cxGrid: TcxGrid + Left = 10 + Top = 10 + Width = 663 + Height = 313 + ExplicitLeft = 10 + ExplicitTop = 10 + ExplicitWidth = 663 + ExplicitHeight = 313 + inherited cxGridView: TcxGridDBTableView + OptionsView.Footer = False + 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 + inherited PngImageList: TPngImageList + Left = 40 + Top = 96 + 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 + inherited actGruposCliente: 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 + Left = 80 + Top = 192 + 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 00000000..fc6128d1 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirClientes.pas @@ -0,0 +1,156 @@ +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, JvgWizardHeader, + StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog; + +type + TfEditorElegirClientes = class(TfEditorClientes, IEditorElegirClientes) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + JsClienteBloqueadoDialog: TJSDialog; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirClientes.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirClientes.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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.dfm b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm new file mode 100644 index 00000000..da7c01c0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm @@ -0,0 +1,258 @@ +object fEditorElegirDireccionEntrega: TfEditorElegirDireccionEntrega + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Elegir una direcciones de entrega' + ClientHeight = 383 + ClientWidth = 599 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 599 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione una direcci'#243'n del cliente') + Comments.Strings = ( + + 'Seleccione la direcci'#243'n del cliente que quiere utilizar como dir' + + 'ecci'#243'n de envio.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -57 + ExplicitTop = 27 + ExplicitWidth = 656 + 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 = 335 + 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 = 263 + Margins.Left = 10 + Margins.Top = 10 + Margins.Right = 10 + Margins.Bottom = 0 + AllowDelete = False + AllowInsert = False + DataSource = dsDirecciones + PanelHeight = 87 + PanelWidth = 566 + ParentColor = False + TabOrder = 1 + SelectedColor = clHighlight + OnDblClick = DBCtrlGrid1DblClick + object eCalle: TDBText + Left = 48 + Top = 28 + Width = 512 + 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 + end + object ePoblacion: TDBText + Left = 70 + Top = 47 + Width = 277 + 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 + end + object eTelefono: TDBText + Left = 423 + Top = 66 + Width = 137 + 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 + end + object eProvincia: TDBText + Left = 423 + Top = 47 + Width = 137 + 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 + end + object ePersonaContacto: TDBText + Left = 124 + Top = 66 + Width = 284 + 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 + 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 + end + object eCodigoPostal: TDBText + Left = 353 + Top = 47 + Width = 64 + 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 + end + object Label1: TLabel + Left = 15 + Top = 28 + Width = 27 + Height = 13 + Caption = 'Calle:' + end + object Label2: TLabel + Left = 15 + Top = 47 + Width = 49 + Height = 13 + Caption = 'Poblaci'#243'n:' + end + object Label3: TLabel + Left = 447 + Top = 7 + Width = 30 + Height = 13 + Caption = 'Porte:' + end + object ePorte: TDBText + Left = 483 + Top = 7 + Width = 70 + Height = 17 + DataField = 'PORTE' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label4: TLabel + Left = 15 + Top = 66 + Width = 103 + Height = 13 + Caption = 'Persona de contacto:' + end + end + object dsDirecciones: TDADataSource + Left = 24 + Top = 286 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas new file mode 100644 index 00000000..0036bfbb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas @@ -0,0 +1,106 @@ +unit uEditorElegirDireccionEntrega; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorElegirDireccionEntrega, uCustomView, + uViewBase, uViewBarraSeleccion, JvExControls, JvComponent, JvgWizardHeader, + DBCGrids, uBizDireccionesContacto; + +type + TfEditorElegirDireccionEntrega = class(TForm, IEditorElegirDireccionEntrega) + dsDirecciones: TDADataSource; + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + DBCtrlGrid1: TDBCtrlGrid; + eCalle: TDBText; + ePoblacion: TDBText; + eTelefono: TDBText; + eProvincia: TDBText; + ePersonaContacto: TDBText; + eNombre: TDBText; + eCodigoPostal: TDBText; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + ePorte: TDBText; + Label4: TLabel; + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure DBCtrlGrid1DblClick(Sender: TObject); + + protected + FDirecciones: IBizDireccionesContacto; + function GetDireccion: IBizDireccionesContacto; + procedure SetDireccion(const Value: IBizDireccionesContacto); + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + + function GetDireccionSeleccionada: IBizDireccionesContacto; + public + property Mensaje : String read GetMensaje write SetMensaje; + property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion; + property DireccionSeleccionada: IBizDireccionesContacto read GetDireccionSeleccionada; + + end; + +implementation +{$R *.dfm} + +uses + uDireccionesContactoController; + +{ TfEditorDireccionEntrega } + +procedure TfEditorElegirDireccionEntrega.DBCtrlGrid1DblClick(Sender: TObject); +begin + frViewBarraSeleccion1.actSeleccionar.Execute; +end; + +procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + ModalResult := mrCancel; +end; + +procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + ModalResult := mrOk; +end; + +function TfEditorElegirDireccionEntrega.GetDireccion: IBizDireccionesContacto; +begin + Result := FDirecciones; +end; + +function TfEditorElegirDireccionEntrega.GetDireccionSeleccionada: IBizDireccionesContacto; +begin + // Devuelvo el mismo objeto que recibo pero con el punto de lectura + // posicionado en la dirección elegida. + Result := FDirecciones; +end; + +function TfEditorElegirDireccionEntrega.GetMensaje: String; +begin + Result := JvgWizardHeader1.Comments.Text; +end; + +procedure TfEditorElegirDireccionEntrega.SetDireccion(const Value: IBizDireccionesContacto); +begin + FDirecciones := Value; + if Assigned(FDirecciones) then + dsDirecciones.DataTable := FDirecciones.DataTable + else + dsDirecciones.DataTable := NIL; +end; + +procedure TfEditorElegirDireccionEntrega.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := AValue; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm new file mode 100644 index 00000000..da38d0b6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm @@ -0,0 +1,290 @@ +inherited fEditorElegirProveedores: TfEditorElegirProveedores + Caption = 'Seleccionar el proveedor' + ClientHeight = 480 + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 514 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 656 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el proveedor') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.BufferedDraw = True + Gradient.Orientation = fgdVertical + BufferedDraw = True + ExplicitTop = -10 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Visible = False + ExplicitLeft = 8 + ExplicitTop = -12 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 656 + Height = 49 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + inherited TBXItem2: TTBXItem + Images = frViewProveedores1.PngImageList + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 117 + Top = 23 + DockPos = 108 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited StatusBar: TJvStatusBar + Top = 461 + Width = 656 + Visible = False + ExplicitLeft = 8 + ExplicitTop = 467 + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + 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 + inherited frViewProveedores1: TfrViewProveedores [5] + Top = 136 + Width = 656 + Height = 289 + Padding.Left = 10 + Padding.Top = 10 + Padding.Right = 10 + Padding.Bottom = 5 + TabOrder = 4 + ExplicitTop = 136 + ExplicitWidth = 656 + ExplicitHeight = 289 + inherited cxGrid: TcxGrid + Left = 10 + Top = 10 + Width = 636 + Height = 274 + ExplicitLeft = 10 + ExplicitTop = 10 + ExplicitWidth = 636 + ExplicitHeight = 274 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 proveedores' + Kind = skCount + FieldName = 'ID' + Column = frViewProveedores1.cxGridViewNOMBRE + end> + OptionsView.Footer = False + 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 + Left = 80 + Top = 192 + 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 00000000..53e3686e --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.pas @@ -0,0 +1,130 @@ +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, JvgWizardHeader, + StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar; + +type + TfEditorElegirProveedores = class(TfEditorProveedores, IEditorElegirProveedores) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirProveedores.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirProveedores.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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/uEditorGruposCliente.dfm b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm new file mode 100644 index 00000000..9fc08089 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm @@ -0,0 +1,138 @@ +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' + 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 00000000..602a9a42 --- /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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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; + +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/uEditorProveedor.dfm b/Source/Modulos/Contactos/Views/uEditorProveedor.dfm new file mode 100644 index 00000000..65ca2e6d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedor.dfm @@ -0,0 +1,331 @@ +inherited fEditorProveedor: TfEditorProveedor + Caption = 'fEditorProveedor' + ClientHeight = 548 + ExplicitWidth = 320 + ExplicitHeight = 582 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + 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 pgPaginas: TPageControl + Height = 453 + ExplicitHeight = 453 + inherited pagGeneral: TTabSheet + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 425 + inline frViewProveedor1: TfrViewProveedor + Left = 0 + Top = 0 + Width = 624 + 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 = 624 + ExplicitHeight = 425 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 624 + Height = 425 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 624 + ExplicitHeight = 425 + inherited PngSpeedButton1: TPngSpeedButton + Left = 579 + Top = 218 + ExplicitLeft = 579 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 579 + Top = 190 + ExplicitLeft = 579 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 579 + Top = 162 + ExplicitLeft = 579 + ExplicitTop = 162 + end + inherited Label1: TLabel + Left = 368 + Top = 297 + Width = 342 + ExplicitLeft = 368 + ExplicitTop = 297 + ExplicitWidth = 342 + end + inherited eCalle: TcxDBTextEdit + Top = 248 + ExplicitTop = 248 + ExplicitWidth = 174 + Width = 174 + end + inherited eProvincia: TcxDBTextEdit + Top = 302 + ExplicitTop = 302 + ExplicitWidth = 174 + Width = 174 + end + inherited ePoblacion: TcxDBTextEdit + Top = 275 + ExplicitTop = 275 + ExplicitWidth = 108 + Width = 108 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 275 + Top = 275 + ExplicitLeft = 275 + ExplicitTop = 275 + end + inherited eObservaciones: TcxDBMemo + Top = 353 + ExplicitTop = 353 + ExplicitWidth = 580 + ExplicitHeight = 56 + Height = 56 + Width = 580 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 463 + Top = 57 + ExplicitLeft = 463 + ExplicitTop = 57 + ExplicitWidth = 172 + Width = 172 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 463 + Top = 30 + ExplicitLeft = 463 + ExplicitTop = 30 + ExplicitWidth = 172 + Width = 172 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 463 + Top = 84 + ExplicitLeft = 463 + ExplicitTop = 84 + ExplicitWidth = 172 + Width = 172 + end + inherited eFax: TcxDBTextEdit + Left = 463 + Top = 111 + ExplicitLeft = 463 + ExplicitTop = 111 + ExplicitWidth = 172 + Width = 172 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 263 + Width = 263 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 181 + Top = 30 + ExplicitLeft = 181 + ExplicitTop = 30 + ExplicitWidth = 254 + Width = 254 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 463 + Top = 162 + Properties.Prefix = 'mailto:' + ExplicitLeft = 463 + ExplicitTop = 162 + ExplicitWidth = 129 + Width = 129 + end + inherited cxDBCheckBox1: TcxDBCheckBox + Left = 368 + Top = 270 + ExplicitLeft = 368 + ExplicitTop = 270 + ExplicitWidth = 310 + Width = 310 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 463 + Top = 190 + Properties.Prefix = 'mailto:' + ExplicitLeft = 463 + ExplicitTop = 190 + ExplicitWidth = 165 + Width = 165 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 463 + Top = 217 + ExplicitLeft = 463 + ExplicitTop = 217 + ExplicitWidth = 165 + Width = 165 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 100 + Width = 100 + end + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitHeight = 425 + inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios + Height = 425 + ExplicitHeight = 425 + inherited dxLayoutControl1: TdxLayoutControl + LookAndFeel = dxLayoutOfficeLookAndFeel + inherited eEntidad: TcxDBTextEdit + ExplicitWidth = 144 + Width = 144 + end + inherited eSucursal: TcxDBTextEdit + ExplicitWidth = 139 + Width = 139 + end + inherited eCuenta: TcxDBTextEdit + ExplicitWidth = 242 + Width = 242 + end + inherited eTitular: TcxDBTextEdit + ExplicitWidth = 363 + Width = 363 + end + end + end + end + object pagDatosComerciales: TTabSheet + Caption = 'Datos comerciales' + ImageIndex = 2 + inline frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales + Left = 0 + Top = 0 + Width = 624 + Height = 121 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 624 + ExplicitHeight = 121 + inherited dxLayoutControl1: TdxLayoutControl + Width = 624 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 624 + inherited Label1: TLabel + Left = 405 + Top = 30 + Width = 190 + ExplicitLeft = 405 + ExplicitTop = 30 + ExplicitWidth = 190 + end + inherited cbRegimenIVA: TcxDBComboBox + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 121 + Width = 121 + end + inherited cbFormaPago: TcxDBLookupComboBox + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 121 + Width = 121 + end + inherited bFormasPago: TButton + Left = 245 + Top = 57 + ExplicitLeft = 245 + ExplicitTop = 57 + end + inherited eIVA: TcxDBLookupComboBox + Top = 84 + ExplicitTop = 84 + ExplicitWidth = 121 + Width = 121 + end + inherited bTiposIVA: TButton + Left = 245 + Top = 84 + ExplicitLeft = 245 + ExplicitTop = 84 + end + inherited eDescuento: TcxDBSpinEdit + Left = 449 + Top = 62 + ExplicitLeft = 449 + ExplicitTop = 62 + ExplicitWidth = 73 + Width = 73 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 529 + ExplicitTop = 529 + end + inherited EditorActionList: TActionList + Left = 32 + Top = 160 + 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 00000000..7e5e2496 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedor.pas @@ -0,0 +1,76 @@ +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; + +type + TfEditorProveedor = class(TfEditorContacto, IEditorProveedor) + frViewProveedor1: TfrViewProveedor; + pagDatosComerciales: TTabSheet; + frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales; + 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; + +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 + frViewProveedorDatosComerciales1.Contacto := Contacto + else + frViewProveedorDatosComerciales1.Contacto := NIL +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.dfm b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm new file mode 100644 index 00000000..36decf23 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm @@ -0,0 +1,684 @@ +inherited fEditorProveedores: TfEditorProveedores + Caption = 'fEditorProveedores' + ExplicitWidth = 551 + ExplicitHeight = 478 + 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 + inherited TBXItem2: TTBXItem + Images = SmallImages + end + end + end + inline frViewProveedores1: TfrViewProveedores [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 proveedores' + Kind = skCount + FieldName = 'ID' + Column = frViewProveedores1.cxGridViewREFERENCIA + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 543 + ExplicitWidth = 543 + inherited TBXDock1: TTBXDock + Width = 543 + ExplicitWidth = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 543 + inherited dxLayoutControl1: TdxLayoutControl + Width = 539 + ExplicitWidth = 539 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 334 + ExplicitLeft = 334 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 539 + ExplicitWidth = 539 + inherited tbxBotones: TTBXToolbar + Width = 529 + ExplicitWidth = 529 + end + 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 = 39211.792703807870000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewProveedores1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited PngImageList: TPngImageList + Left = 228 + Top = 128 + 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 + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.pas b/Source/Modulos/Contactos/Views/uEditorProveedores.pas new file mode 100644 index 00000000..0dd4edd0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedores.pas @@ -0,0 +1,55 @@ +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; + +type + TfEditorProveedores = class(TfEditorContactos, IEditorProveedores) + frViewProveedores1: TfrViewProveedores; + protected + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uEditorGridBase, uDataModuleUsuarios, uDialogUtils; + +{$R *.dfm} + +{ TfEditorProveedores } + +constructor TfEditorProveedores.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewProveedores1; +end; + +procedure TfEditorProveedores.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este proveedor?', '') = IDYES) then + inherited; +end; + +procedure TfEditorProveedores.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de proveedores - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewAgente.dfm b/Source/Modulos/Contactos/Views/uViewAgente.dfm new file mode 100644 index 00000000..755027e3 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgente.dfm @@ -0,0 +1,90 @@ +inherited frViewAgente: TfrViewAgente + Height = 391 + ExplicitHeight = 391 + inherited dxLayoutControlContacto: TdxLayoutControl + Height = 391 + ExplicitHeight = 391 + inherited eCalle: TcxDBTextEdit + ExplicitWidth = 260 + Width = 260 + end + inherited eProvincia: TcxDBTextEdit + ExplicitWidth = 260 + Width = 260 + end + inherited ePoblacion: TcxDBTextEdit + ExplicitWidth = 159 + Width = 159 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 271 + ExplicitLeft = 271 + end + inherited eObservaciones: TcxDBMemo + ExplicitHeight = 148 + Height = 148 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 461 + ExplicitLeft = 461 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 461 + ExplicitLeft = 461 + ExplicitWidth = 127 + Width = 127 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 461 + ExplicitLeft = 461 + ExplicitWidth = 155 + Width = 155 + end + inherited eFax: TcxDBTextEdit + Left = 461 + ExplicitLeft = 461 + ExplicitWidth = 121 + Width = 121 + end + inherited eNombre: TcxDBTextEdit + ExplicitWidth = 263 + Width = 263 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 194 + ExplicitLeft = 194 + ExplicitWidth = 100 + Width = 100 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 461 + Properties.Prefix = 'mailto:' + ExplicitLeft = 461 + ExplicitWidth = 129 + Width = 129 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 461 + Properties.Prefix = 'mailto:' + ExplicitLeft = 461 + ExplicitWidth = 165 + Width = 165 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 461 + ExplicitLeft = 461 + ExplicitWidth = 165 + Width = 165 + end + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 38 + Width = 38 + 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 00000000..e632b80a --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgente.pas @@ -0,0 +1,28 @@ +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; + +type + IViewAgente = interface(IViewContacto) + ['{AD12357F-A0BD-4CB7-9EEF-59DCBE7A3B55}'] + end; + + TfrViewAgente = class(TfrViewContacto, IViewAgente) + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm new file mode 100644 index 00000000..2ad86dad --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm @@ -0,0 +1,54 @@ +inherited frAgenteComisiones: TfrAgenteComisiones + 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.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + BestFitMaxWidth = 30 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + end + end + inherited ToolBar1: TToolBar + Width = 626 + ExplicitWidth = 626 + 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 00000000..b67d3697 --- /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; + +type + TfrAgenteComisiones = 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 TfrAgenteComisiones.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 TfrAgenteComisiones.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.dfm b/Source/Modulos/Contactos/Views/uViewAgentes.dfm new file mode 100644 index 00000000..c1361797 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgentes.dfm @@ -0,0 +1,51 @@ +inherited frViewAgentes: TfrViewAgentes + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 agentes' + Kind = skCount + FieldName = 'ID' + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 553 + 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 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.791248726860000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end +end diff --git a/Source/Modulos/Contactos/Views/uViewAgentes.pas b/Source/Modulos/Contactos/Views/uViewAgentes.pas new file mode 100644 index 00000000..b4f29e02 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgentes.pas @@ -0,0 +1,28 @@ +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, dxPScxGridLnk, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase; + +type + IViewAgentes = interface(IViewContactos) + ['{1377B990-14D4-4AD2-AE62-647DA4F9FF58}'] + end; + + TfrViewAgentes = class(TfrViewContactos, IViewAgentes) + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewCategorias.dfm b/Source/Modulos/Contactos/Views/uViewCategorias.dfm new file mode 100644 index 00000000..ac5389ce --- /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 00000000..d71838a1 --- /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.dfm b/Source/Modulos/Contactos/Views/uViewCliente.dfm new file mode 100644 index 00000000..326ee204 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCliente.dfm @@ -0,0 +1,342 @@ +inherited frViewCliente: TfrViewCliente + Width = 646 + Height = 470 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 646 + ExplicitHeight = 470 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 646 + Height = 470 + ExplicitWidth = 646 + ExplicitHeight = 470 + inherited PngSpeedButton1: TPngSpeedButton + Left = 601 + ExplicitLeft = 601 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 601 + ExplicitLeft = 601 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 601 + ExplicitLeft = 601 + end + object Label1: TLabel [3] + Left = 337 + Top = 280 + 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 + inherited eCalle: TcxDBTextEdit + Left = 121 + Top = 271 + TabOrder = 7 + ExplicitLeft = 121 + ExplicitTop = 271 + ExplicitWidth = 175 + Width = 175 + end + inherited eProvincia: TcxDBTextEdit + Left = 121 + Top = 325 + TabOrder = 10 + ExplicitLeft = 121 + ExplicitTop = 325 + ExplicitWidth = 167 + Width = 167 + end + inherited ePoblacion: TcxDBTextEdit + Left = 121 + Top = 298 + TabOrder = 8 + ExplicitLeft = 121 + ExplicitTop = 298 + ExplicitWidth = 71 + Width = 71 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 242 + Top = 298 + TabOrder = 9 + ExplicitLeft = 242 + ExplicitTop = 298 + end + inherited eObservaciones: TcxDBMemo + Top = 382 + TabOrder = 19 + ExplicitTop = 382 + ExplicitWidth = 609 + ExplicitHeight = 42 + Height = 42 + Width = 609 + end + object eNombreComercial: TcxDBTextEdit [9] + Left = 121 + 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 = 143 + end + object cbClienteBloqueado: TcxDBCheckBox [10] + Left = 22 + Top = 187 + 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 = 5 + Width = 163 + end + object cbGrupoCliente: TcxDBComboBox [11] + Left = 121 + Top = 109 + 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 = 4 + Width = 87 + end + object eBloqueo: TcxDBTextEdit [12] + Left = 121 + Top = 214 + 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 = 6 + Width = 113 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 432 + TabOrder = 12 + ExplicitLeft = 432 + ExplicitWidth = 157 + Width = 157 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 432 + TabOrder = 11 + ExplicitLeft = 432 + ExplicitWidth = 157 + Width = 157 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 432 + TabOrder = 13 + ExplicitLeft = 432 + ExplicitWidth = 157 + Width = 157 + end + inherited eFax: TcxDBTextEdit + Left = 432 + TabOrder = 14 + ExplicitLeft = 432 + ExplicitWidth = 157 + Width = 157 + end + object cxDBCheckBox1: TcxDBCheckBox [17] + Left = 337 + Top = 325 + 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 = 18 + Width = 275 + end + inherited eNombre: TcxDBTextEdit + Left = 121 + ExplicitLeft = 121 + ExplicitWidth = 135 + Width = 135 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 233 + ExplicitLeft = 233 + ExplicitWidth = 58 + Width = 58 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 432 + Properties.Prefix = 'mailto:' + TabOrder = 15 + ExplicitLeft = 432 + ExplicitWidth = 128 + Width = 128 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 432 + Properties.Prefix = 'mailto:' + TabOrder = 16 + ExplicitLeft = 432 + ExplicitWidth = 128 + Width = 128 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 432 + TabOrder = 17 + ExplicitLeft = 432 + ExplicitWidth = 128 + Width = 128 + end + inherited eReferencia: TcxDBTextEdit + Left = 121 + ExplicitLeft = 121 + 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 dxLayoutControlContactoItem19: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Grupo de cliente:' + Control = cbGrupoCliente + 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 + object dxLayoutControlContactoGroup10: 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 dxLayoutControlContactoItem20: 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 dsContacto: TDADataSource + Top = 144 + 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 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewCliente.pas b/Source/Modulos/Contactos/Views/uViewCliente.pas new file mode 100644 index 00000000..944a2f49 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCliente.pas @@ -0,0 +1,124 @@ +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; + +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; + dxLayoutControlContactoGroup10: TdxLayoutGroup; + dxLayoutControlContactoItem20: TdxLayoutItem; + cxDBCheckBox1: TcxDBCheckBox; + dxLayoutControlContactoItem21: TdxLayoutItem; + Label1: TLabel; + 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); + protected + FGrupoController: IGruposClienteController; + procedure SetContacto(const Value: IBizContacto); override; + end; + +implementation + +{$R *.dfm} + +uses + uBizGruposCliente; + +{ TfrViewCliente } + +procedure TfrViewCliente.actBloqueoClienteExecute(Sender: TObject); +begin + inherited; + eBloqueo.Enabled := cbClienteBloqueado.Checked; +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.SetContacto(const Value: IBizContacto); +begin + inherited; + if Assigned(FContacto) then + eBloqueo.Enabled := cbClienteBloqueado.Checked; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm new file mode 100644 index 00000000..d68b3d84 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm @@ -0,0 +1,331 @@ +inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales + Width = 637 + Height = 284 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 637 + ExplicitHeight = 284 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 637 + Height = 209 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + ExplicitWidth = 642 + object Label1: TLabel + Left = 353 + Top = 28 + Width = 299 + Height = 26 + Caption = + 'Puede indicar los d'#237'as de vencimiento predeterminados que se uti' + + 'lizar'#225'n para las facturas de este cliente.' + Transparent = True + WordWrap = True + end + object eAgente: TcxDBLookupComboBox + Left = 107 + Top = 166 + 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 = 6 + Width = 197 + end + object eDiasVencimiento: TcxDBSpinEdit + Left = 420 + Top = 60 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS' + 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.ButtonStyle = bts3D + 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 = 79 + end + object cbRegimenIVA: TcxDBComboBox + Left = 107 + 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.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 = 0 + Width = 121 + end + object cbRecargoEquivalencia: TcxDBCheckBox + Left = 107 + 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 + 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 = 121 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 107 + 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.ListSource = dsFormaPago + 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 = 121 + end + object bFormasPago: TButton + Left = 191 + Top = 55 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 2 + OnClick = bFormasPagoClick + end + object eIVA: TcxDBLookupComboBox + Left = 107 + 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.ListSource = dsTiposIVA + 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 = 121 + end + object bTiposIVA: TButton + Left = 191 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 4 + OnClick = bTiposIVAClick + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'New Group' + ShowCaption = False + Hidden = True + 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 + end + object dxLayoutControl1Group4: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Agente comercial' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Agente:' + Control = eAgente + 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 dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'as de vto.:' + Control = eDiasVencimiento + 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 00000000..551b4009 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas @@ -0,0 +1,143 @@ +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, uAgentesController, cxCheckBox, StdCtrls, + uFormasPagoController, uTiposIVAController; + +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; + dxLayoutControl1Item1: TdxLayoutItem; + eAgente: TcxDBLookupComboBox; + dsAgentes: TDADataSource; + dxLayoutControl1Item2: TdxLayoutItem; + eDiasVencimiento: TcxDBSpinEdit; + dxLayoutControl1Item3: TdxLayoutItem; + cbRegimenIVA: TcxDBComboBox; + dsDatosComerciales: TDADataSource; + dxLayoutControl1Item4: TdxLayoutItem; + cbRecargoEquivalencia: TcxDBCheckBox; + dsFormaPago: TDADataSource; + dxLayoutControl1Item5: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + Label1: TLabel; + dxLayoutControl1Item6: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Item7: TdxLayoutItem; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item8: TdxLayoutItem; + eIVA: TcxDBLookupComboBox; + dxLayoutControl1Item9: TdxLayoutItem; + bTiposIVA: TButton; + dsTiposIVA: TDADataSource; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + 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; + 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, uBizFormasPago, uBizTiposIVA; + +{ TfrViewClienteDatosComerciales } + +procedure TfrViewClienteDatosComerciales.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewClienteDatosComerciales.bTiposIVAClick(Sender: TObject); +begin + inherited; + FTiposIVAController.VerTodos((dsTiposIVA.DataTable) as IBizTipoIVA); +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; + FAgentesController := TAgentesController.Create; + FFormasPagoController := TFormasPagoController.Create; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfrViewClienteDatosComerciales.CustomViewDestroy(Sender: TObject); +begin + inherited; + 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; + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + dsTiposIVA.DataTable := FTiposIVAController.BuscarTodos.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.dfm b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm new file mode 100644 index 00000000..e9d751c8 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm @@ -0,0 +1,53 @@ +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.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + BestFitMaxWidth = 30 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + end + end + inherited ToolBar1: TToolBar + Width = 580 + ExplicitWidth = 580 + 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 00000000..171e5dca --- /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; + +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.dfm b/Source/Modulos/Contactos/Views/uViewClientes.dfm new file mode 100644 index 00000000..da1d7b33 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClientes.dfm @@ -0,0 +1,186 @@ +inherited frViewClientes: TfrViewClientes + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + end + item + Format = '0 clientes' + Kind = skCount + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewBLOQUEADO: TcxGridDBColumn [1] + DataBinding.FieldName = 'BLOQUEADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Value = 0 + end + item + Description = 'Bloqueado' + ImageIndex = 1 + Tag = 1 + Value = 1 + end> + Properties.ShowDescriptions = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewTiendaWeb: TcxGridDBColumn [2] + Caption = 'Acceso a tienda web' + DataBinding.FieldName = 'TIENDA_WEB' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 2 + Value = 1 + end> + Properties.ShowDescriptions = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn [6] + DataBinding.FieldName = 'NOMBRE_COMERCIAL' + Width = 164 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + 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 + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 128 + 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 cxViewGridPopupMenu: TcxGridPopupMenu + Left = 32 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited PngImageList: 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 + 610000000970485973000017120000171201679FD252000001664944415478DA + 63FCFFFF3F0325801164002323235CE05023A73990D266E3FF3E1726F6EB2367 + 3290BA6A57FFFD244C0C66318A0130CDD679E7E622DBF2FB6627C3DCB9AB8EEA + CAFC2F861982CB802490E6DF2F0F32CCE8C8801B90919100A6418664CFFE6683 + D380131318FE9BC65F67985CA8C960A4C86901B20DE42AA0774E18582430CC98 + B180A1600103235106C014C2C4F11A70B8890B6C0BB1210F0C540BDBBA6F27E1 + 069C9CC8F8DFC0630603ABB83D41CDB0F0C99FFF9F11C50090D3FFBDD9C7F0FF + EF2F04FE87603380D93F18AE9C9ECB70E202037603FEBEDC01D770ECC67D86A6 + 69F718EAB29418CCE538C19AFFFFF9CE70F5FC32DC06FC79B6096EB367C161B8 + B3B7B42A8335FFFBF383E1FAE575B80DF8FD780D8AB3BDCBCEA368FE0FC437AE + 6FC36DC0AFFB8BE1066C3EFD8C61C69A370CD1EEAC0C61269C60038004C3CDDB + FBB01B008A850B3B3208C602385DA01B004A07E7EE139F0E40A914251D500200 + A1723AF0CAFCCBE70000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001E34944415478DAA5932D72E43010855F98D934341BC1858261D10D76 + 8E3047305C1685051A067A59A0E042E70682863D6C608719EE6B399EADDABFAA + AD7595CAB2DCFDF5EB1FDDE13F9FBB9F0FF258225F27AEC415D109B05A35C3CC + EF32E653FD2380CE035F4388720C41609DC2D68ABA28B42688E1820E79CAE7E9 + 17407316E4788F43E8033CF2F46D42F804E8E29084E0A2ACBE7B90E9798334C0 + 40D9145AC2BD1E8591A58B5CFE27406D462915EA59AD4A70812CF142FBD3340E + 750764113C8648C9A214E20A0C762560A1A925A662A8FDD0D48A06846B782220 + 6F80E732C7181F14858079CB69895B1D57D6824BBB99FF4A03C9952134BD9597 + 21ED008BF1F341F52BAA3035098CC23428DB561A70D53EC39888EFB941D4F45E + 5EB2DC0021A6035BC56A0F306660BD1B464A3DB5A8B00CED89606A62B201A61D + 90CB8C3E3EA03BD2F002BD8EF4550FB441D421532B62658D02CFC4C2DBFC9AD3 + 0EC86CDBA349DC24B2F7BA8E2D227BCF9CFD3CB573EC69409EE6D731EF804899 + EC4F3CB6D631927623FFD48F5AC84741B1B572D58B4FEB5CC67A1BA4739ECE34 + 18D185435DE756B070B5CDB17305B63BB741A2F38F41BA41BE38C4324D8FE6C6 + 3E0FBE7CEF15F602716877E7DF5EA6F330B6CBC4F6A55641CAE69EC973245714 + 97FDD7DBF8AFCF7740E00D20BA266C3A0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 64 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewClientes.pas b/Source/Modulos/Contactos/Views/uViewClientes.pas new file mode 100644 index 00000000..48a34cc7 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClientes.pas @@ -0,0 +1,38 @@ +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, + dxPScxGridLnk, ExtCtrls, JvComponentBase, JvBalloonHint, JvHint, + uViewFiltroBase, dxPgsDlg, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock; + +type + IViewClientes = interface(IViewContactos) + ['{7964E0AB-3075-43E7-94BC-513D80A1C116}'] + end; + + TfrViewClientes = class(TfrViewContactos, IViewClientes) + cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn; + cxGridViewBLOQUEADO: TcxGridDBColumn; + cxGridViewTiendaWeb: TcxGridDBColumn; + end; + + +implementation + +uses uViewGridBase; + + +{$R *.dfm} + + +end. diff --git a/Source/Modulos/Contactos/Views/uViewContacto.dfm b/Source/Modulos/Contactos/Views/uViewContacto.dfm new file mode 100644 index 00000000..9176807a --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContacto.dfm @@ -0,0 +1,622 @@ +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 + 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 = 76 + Top = 169 + DataBinding.DataField = 'CALLE' + 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 = 3 + Width = 181 + end + object eProvincia: TcxDBTextEdit + Left = 76 + Top = 223 + DataBinding.DataField = 'PROVINCIA' + 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 = 6 + Width = 133 + end + object ePoblacion: TcxDBTextEdit + Left = 76 + Top = 196 + DataBinding.DataField = 'POBLACION' + 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 = 4 + Width = 111 + end + object eCodigoPostal: TcxDBTextEdit + Left = 267 + Top = 196 + DataBinding.DataField = 'CODIGO_POSTAL' + 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 = 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 + 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 + Height = 54 + Width = 630 + end + object eTlfParticular: TcxDBTextEdit + Left = 457 + Top = 55 + DataBinding.DataField = 'TELEFONO_2' + 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 = 8 + Width = 91 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 457 + Top = 28 + DataBinding.DataField = 'TELEFONO_1' + 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 = 7 + Width = 127 + end + object eTlfMovil: TcxDBTextEdit + Left = 457 + Top = 82 + DataBinding.DataField = 'MOVIL_1' + 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 = 9 + Width = 155 + end + object eFax: TcxDBTextEdit + Left = 457 + Top = 109 + DataBinding.DataField = 'FAX' + 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 = 10 + Width = 121 + end + object eNombre: TcxDBTextEdit + Left = 76 + 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 + 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 = 221 + end + object eNIFCIF: TcxDBTextEdit + Left = 218 + 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 + 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 = 57 + end + object eMailTrabajo: TcxDBHyperLinkEdit + Left = 457 + 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 + 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 + Width = 133 + end + object eMailParticular: TcxDBHyperLinkEdit + Left = 457 + 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 + 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 = 12 + Width = 133 + end + object ePaginaWeb: TcxDBHyperLinkEdit + Left = 457 + 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 + 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 = 13 + Width = 133 + end + object eReferencia: TcxDBTextEdit + Left = 76 + Top = 28 + DataBinding.DataField = 'REFERENCIA' + 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 = 0 + Width = 38 + 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 dxLayoutControlContactoGroup8: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = ePoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem4: TdxLayoutItem + Caption = 'C.P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoItem2: TdxLayoutItem + Caption = 'Provincia:' + Control = eProvincia + 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 = 'Tlf. trabajo:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem9: TdxLayoutItem + Caption = 'Tlf. particular:' + Visible = False + 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 = 200 + Top = 160 + 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 = 200 + Top = 136 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContacto.pas b/Source/Modulos/Contactos/Views/uViewContacto.pas new file mode 100644 index 00000000..3b1e172c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContacto.pas @@ -0,0 +1,189 @@ +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; + +type + IViewContacto = interface(IViewBase) + ['{5FCFD172-5F8A-4639-B479-1CF0061526B5}'] + 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; + eProvincia: TcxDBTextEdit; + dxLayoutControlContactoItem3: TdxLayoutItem; + ePoblacion: TcxDBTextEdit; + dxLayoutControlContactoItem4: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControlContactoGroup8: TdxLayoutGroup; + 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; + 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); + protected + FContacto: IBizContacto; + function GetContacto: IBizContacto; virtual; + procedure SetContacto(const Value: IBizContacto); virtual; + public + constructor Create(AOwner : TComponent); override; + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + +implementation +{$R *.dfm} + +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; + +constructor TfrViewContacto.Create(AOwner : TComponent); +begin + 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; + +function TfrViewContacto.GetContacto: IBizContacto; +begin + Result := FContacto; +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; + +initialization + RegisterClass(TfrViewContacto); + +finalization + UnRegisterClass(TfrViewContacto); + +end. + diff --git a/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm new file mode 100644 index 00000000..6de2c44b --- /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 = 116 + 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 = 340 + 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 = 237 + 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 = 116 + 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 = 116 + 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 titular:' + 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 00000000..e0fbe00b --- /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; + +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/uViewContactos.dfm b/Source/Modulos/Contactos/Views/uViewContactos.dfm new file mode 100644 index 00000000..4bbbe1f0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactos.dfm @@ -0,0 +1,161 @@ +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 cxGridViewICONO: TcxGridDBColumn + OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell + BestFitMaxWidth = 18 + Options.Sorting = False + Width = 20 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'REFERENCIA' + Width = 50 + end + object cxGridViewNIF_CIF: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF' + Width = 50 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + SortIndex = 0 + SortOrder = soAscending + Width = 164 + 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 + Width = 47 + end + object cxGridViewTELEFONO_1: TcxGridDBColumn + Caption = 'Tlf. trabajo' + DataBinding.FieldName = 'TELEFONO_1' + Width = 84 + end + object cxGridViewTELEFONO_2: TcxGridDBColumn + Caption = 'Tlf. particular' + DataBinding.FieldName = 'TELEFONO_2' + Visible = False + end + object cxGridViewMOVIL_1: TcxGridDBColumn + DataBinding.FieldName = 'MOVIL_1' + Width = 49 + end + object cxGridViewFAX: TcxGridDBColumn + DataBinding.FieldName = 'FAX' + Visible = False + end + object cxGridViewEMAIL_1: TcxGridDBColumn + Caption = 'E-mail trabajo' + DataBinding.FieldName = 'EMAIL_1' + Width = 43 + end + object cxGridViewEMAIL_2: TcxGridDBColumn + Caption = 'E-mail particular' + DataBinding.FieldName = 'EMAIL_2' + Visible = False + end + object cxGridViewPAGINA_WEB: TcxGridDBColumn + DataBinding.FieldName = 'PAGINA_WEB' + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 557 + ExplicitWidth = 557 + inherited TBXDock1: TTBXDock + Width = 557 + ExplicitWidth = 557 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 557 + inherited dxLayoutControl1: TdxLayoutControl + Width = 553 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 343 + ExplicitLeft = 343 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 553 + ExplicitWidth = 553 + inherited tbxBotones: TTBXToolbar + Width = 543 + ExplicitWidth = 543 + end + 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 + 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 dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + object PngImageList: TPngImageList + PngImages = <> + Left = 160 + Top = 32 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContactos.pas b/Source/Modulos/Contactos/Views/uViewContactos.pas new file mode 100644 index 00000000..402ea141 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactos.pas @@ -0,0 +1,89 @@ +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, dxPScxGridLnk, + udatamoduleclientes, cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, + ComCtrls, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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) + PngImageList: TPngImageList; + cxGridViewICONO: TcxGridDBColumn; + 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; + procedure cxGridViewCODIGOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + 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} + +{ TfrViewClientes } + +{ +******************************* 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; + + +procedure TfrViewContactos.cxGridViewCODIGOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); + ADone := True; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm new file mode 100644 index 00000000..b158aeb6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm @@ -0,0 +1,476 @@ +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 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 00000000..df211938 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas @@ -0,0 +1,200 @@ +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; + +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 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 + FController : IClientesController; + FCliente : IBizCliente; + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + function GetMsgElegirCliente: String; + procedure SetMsgElegirCliente(const Value: String); + protected + function GetController: IClientesController; + procedure SetController(Value: IClientesController); + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + public + constructor Create(AOwner: TComponent); 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; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math; + +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; +end; + +procedure TfrViewDatosYSeleccionCliente.actAnadirContactoExecute( + Sender: TObject); +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FController.Nuevo as IBizCliente); + FController.Ver(ACliente); + Cliente := ACliente; +end; + +procedure TfrViewDatosYSeleccionCliente.actVerContactoExecute(Sender: TObject); +begin + inherited; + FController.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 := ''; +end; + +function TfrViewDatosYSeleccionCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionCliente.GetController: IClientesController; +begin + Result := FController; +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 + FController := 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; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm new file mode 100644 index 00000000..4dad9bfb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm @@ -0,0 +1,643 @@ +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 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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 00000000..581bf09d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.pas @@ -0,0 +1,200 @@ +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; + +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 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); + public + constructor Create(AOwner: TComponent); override; + property MsgElegirProveedor : String read GetMsgElegirProveedor write SetMsgElegirProveedor; + property Controller: IProveedoresController read GetController write SetController; + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged write SetOnProveedorChanged; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleProveedores, Math; + +procedure TfrViewDatosYSeleccionProveedor.actElegirContactoExecute(Sender: TObject); +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; + +procedure TfrViewDatosYSeleccionProveedor.actAnadirContactoExecute( + Sender: TObject); +var + AProveedor : IBizProveedor; +begin + inherited; + AProveedor := (FController.Nuevo as IBizProveedor); + FController.Ver(AProveedor); + Proveedor := AProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedor.actVerContactoExecute(Sender: TObject); +begin + inherited; + FController.Ver(Proveedor); +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 := ''; +end; + +function TfrViewDatosYSeleccionProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +function TfrViewDatosYSeleccionProveedor.GetController: IProveedoresController; +begin + Result := FController; +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.SetController(Value: IProveedoresController); +begin + FController := 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 00000000..a8deb648 --- /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 00000000..c33bd090 --- /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.dfm b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm new file mode 100644 index 00000000..862fd540 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm @@ -0,0 +1,79 @@ +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 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas new file mode 100644 index 00000000..10437926 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas @@ -0,0 +1,68 @@ +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; + +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); + protected + procedure AnadirInterno; override; + procedure ModificarInterno; override; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDireccionesContactoController, uBizDireccionesContacto; + +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/uViewInternet.dfm b/Source/Modulos/Contactos/Views/uViewInternet.dfm new file mode 100644 index 00000000..c28a0d15 --- /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 00000000..7992ee63 --- /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/uViewProveedor.dfm b/Source/Modulos/Contactos/Views/uViewProveedor.dfm new file mode 100644 index 00000000..fe554cb2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedor.dfm @@ -0,0 +1,156 @@ +inherited frViewProveedor: TfrViewProveedor + Height = 454 + ExplicitHeight = 454 + inherited dxLayoutControlContacto: TdxLayoutControl + Height = 454 + ExplicitHeight = 454 + object Label1: TLabel [3] + Left = 356 + Top = 307 + Width = 342 + 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 + inherited eCalle: TcxDBTextEdit + Top = 258 + ExplicitTop = 258 + ExplicitWidth = 264 + Width = 264 + end + inherited eProvincia: TcxDBTextEdit + Top = 312 + ExplicitTop = 312 + ExplicitWidth = 264 + Width = 264 + end + inherited ePoblacion: TcxDBTextEdit + Top = 285 + ExplicitTop = 285 + ExplicitWidth = 163 + Width = 163 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 261 + Top = 285 + ExplicitLeft = 261 + ExplicitTop = 285 + end + inherited eObservaciones: TcxDBMemo + Top = 369 + TabOrder = 15 + ExplicitTop = 369 + ExplicitHeight = 43 + Height = 43 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 451 + ExplicitLeft = 451 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 451 + ExplicitLeft = 451 + ExplicitWidth = 127 + Width = 127 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 451 + ExplicitLeft = 451 + ExplicitWidth = 155 + Width = 155 + end + inherited eFax: TcxDBTextEdit + Left = 451 + ExplicitLeft = 451 + ExplicitWidth = 121 + Width = 121 + end + object cxDBCheckBox1: TcxDBCheckBox [13] + Left = 356 + Top = 280 + 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 = 14 + Width = 310 + end + inherited eNombre: TcxDBTextEdit + ExplicitWidth = 221 + Width = 221 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 155 + ExplicitLeft = 155 + ExplicitWidth = 205 + Width = 205 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 451 + Properties.Prefix = 'mailto:' + ExplicitLeft = 451 + ExplicitWidth = 133 + Width = 133 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 451 + Properties.Prefix = 'mailto:' + ExplicitLeft = 451 + ExplicitWidth = 133 + Width = 133 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 451 + ExplicitLeft = 451 + ExplicitWidth = 133 + Width = 133 + end + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 38 + Width = 38 + end + inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup + inherited dxLayoutControlContactoGroup9: TdxLayoutGroup + inherited dxLayoutControlContactoGroup6: TdxLayoutGroup + object dxLayoutControlContactoGroup10: TdxLayoutGroup + Caption = 'Tienda web' + object dxLayoutControlContactoItem19: TdxLayoutItem + ShowCaption = False + Control = cxDBCheckBox1 + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem16: TdxLayoutItem + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + end + end + end + inherited dsContacto: TDADataSource + Left = 32 + Top = 88 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.pas b/Source/Modulos/Contactos/Views/uViewProveedor.pas new file mode 100644 index 00000000..100305c2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedor.pas @@ -0,0 +1,33 @@ +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; + +type + IViewProveedor = interface(IViewContacto) + ['{D251B289-767A-489A-A862-BE564C79EFE6}'] + end; + + TfrViewProveedor = class(TfrViewContacto, IViewProveedor) + dxLayoutControlContactoGroup10: TdxLayoutGroup; + dxLayoutControlContactoItem16: TdxLayoutItem; + Label1: TLabel; + dxLayoutControlContactoItem19: TdxLayoutItem; + cxDBCheckBox1: TcxDBCheckBox; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm new file mode 100644 index 00000000..d684b2a4 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm @@ -0,0 +1,244 @@ +inherited frViewProveedorDatosComerciales: TfrViewProveedorDatosComerciales + Width = 642 + Height = 266 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 642 + ExplicitHeight = 266 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 642 + Height = 129 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + object Label1: TLabel + Left = 417 + Top = 28 + Width = 190 + Height = 26 + Caption = + 'Puede indicar el descuento por defecto acordado con este proveed' + + 'or.' + Transparent = True + WordWrap = True + end + object cbRegimenIVA: TcxDBComboBox + Left = 107 + 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.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 = 0 + Width = 121 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 107 + 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.ListSource = dsFormaPago + 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 = 121 + end + object bFormasPago: TButton + Left = 255 + Top = 55 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 2 + OnClick = bFormasPagoClick + end + object eIVA: TcxDBLookupComboBox + Left = 107 + 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.ListSource = dsTiposIVA + 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 = 121 + end + object bTiposIVA: TButton + Left = 255 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 4 + OnClick = bTiposIVAClick + end + object eDescuento: TcxDBSpinEdit + Left = 461 + Top = 60 + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = dsDatosComerciales + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + 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 = 73 + 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 + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descuento por defecto' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Label1' + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = '% Dto.:' + Control = eDescuento + 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 00000000..272ea31f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.pas @@ -0,0 +1,137 @@ +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, uAgentesController, cxCheckBox, StdCtrls, + uFormasPagoController, uTiposIVAController; + +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; + dxLayoutControl1Item10: TdxLayoutItem; + eDescuento: TcxDBSpinEdit; + 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; + 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, uBizFormasPago, uBizTiposIVA; + +{ TfrViewProveedorDatosComerciales } + +procedure TfrViewProveedorDatosComerciales.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewProveedorDatosComerciales.bTiposIVAClick(Sender: TObject); +begin + inherited; + FTiposIVAController.VerTodos((dsTiposIVA.DataTable) as IBizTipoIVA); +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; + FAgentesController := TAgentesController.Create; + FFormasPagoController := TFormasPagoController.Create; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfrViewProveedorDatosComerciales.CustomViewDestroy(Sender: TObject); +begin + inherited; + FAgentesController := 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; + dsAgentes.DataTable := FAgentesController.BuscarTodos.DataTable; + dsAgentes.DataTable.Active := True; + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + dsTiposIVA.DataTable := FTiposIVAController.BuscarTodos.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/uViewProveedores.dfm b/Source/Modulos/Contactos/Views/uViewProveedores.dfm new file mode 100644 index 00000000..478f702c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedores.dfm @@ -0,0 +1,234 @@ +inherited frViewProveedores: TfrViewProveedores + Width = 483 + Height = 435 + ExplicitWidth = 483 + ExplicitHeight = 435 + inherited cxGrid: TcxGrid + Width = 483 + Height = 307 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 proveedores' + Kind = skCount + FieldName = 'ID' + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewTIENDA_WEB: TcxGridDBColumn [1] + Caption = 'Incluido en tienda web' + DataBinding.FieldName = 'TIENDA_WEB' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 1 + Value = 1 + end> + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 483 + inherited TBXDock1: TTBXDock + Width = 483 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 483 + inherited dxLayoutControl1: TdxLayoutControl + Width = 479 + ExplicitWidth = 553 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 453 + Width = 453 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 237 + Width = 237 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 298 + ExplicitLeft = 298 + ExplicitWidth = 199 + Width = 199 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 479 + inherited tbxBotones: TTBXToolbar + Width = 469 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 409 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 483 + inherited TBXToolbar1: TTBXToolbar + Width = 473 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.790492430550000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited PngImageList: TPngImageList + PngImages = < + 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 + 61000001E34944415478DAA5932D72E43010855F98D934341BC1858261D10D76 + 8E3047305C1685051A067A59A0E042E70682863D6C608719EE6B399EADDABFAA + AD7595CAB2DCFDF5EB1FDDE13F9FBB9F0FF258225F27AEC415D109B05A35C3CC + EF32E653FD2380CE035F4388720C41609DC2D68ABA28B42688E1820E79CAE7E9 + 17407316E4788F43E8033CF2F46D42F804E8E29084E0A2ACBE7B90E9798334C0 + 40D9145AC2BD1E8591A58B5CFE27406D462915EA59AD4A70812CF142FBD3340E + 750764113C8648C9A214E20A0C762560A1A925A662A8FDD0D48A06846B782220 + 6F80E732C7181F14858079CB69895B1D57D6824BBB99FF4A03C9952134BD9597 + 21ED008BF1F341F52BAA3035098CC23428DB561A70D53EC39888EFB941D4F45E + 5EB2DC0021A6035BC56A0F306660BD1B464A3DB5A8B00CED89606A62B201A61D + 90CB8C3E3EA03BD2F002BD8EF4550FB441D421532B62658D02CFC4C2DBFC9AD3 + 0EC86CDBA349DC24B2F7BA8E2D227BCF9CFD3CB573EC69409EE6D731EF804899 + EC4F3CB6D631927623FFD48F5AC84741B1B572D58B4FEB5CC67A1BA4739ECE34 + 18D185435DE756B070B5CDB17305B63BB741A2F38F41BA41BE38C4324D8FE6C6 + 3E0FBE7CEF15F602716877E7DF5EA6F330B6CBC4F6A55641CAE69EC973245714 + 97FDD7DBF8AFCF7740E00D20BA266C3A0000000049454E44AE426082} + Name = 'PngImage0' + 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 00000000..2f747b0b --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedores.pas @@ -0,0 +1,29 @@ +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, dxPScxGridLnk, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxImageComboBox; + +type + IViewProveedores = interface(IViewContactos) + ['{C64C0439-5D1D-4B60-9FC0-4E75E58F7384}'] + end; + + TfrViewProveedores = class(TfrViewContactos, IViewProveedores) + cxGridViewTIENDA_WEB: TcxGridDBColumn; + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewTelefonos.dfm b/Source/Modulos/Contactos/Views/uViewTelefonos.dfm new file mode 100644 index 00000000..c312fc00 --- /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 00000000..de2368ff --- /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/Empresas/Controller/Empresas_controller.bdsproj b/Source/Modulos/Empresas/Controller/Empresas_controller.bdsproj new file mode 100644 index 00000000..a78ba8bd --- /dev/null +++ b/Source/Modulos/Empresas/Controller/Empresas_controller.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + Empresas_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 + + + + True + diff --git a/Source/Modulos/Empresas/Controller/Empresas_controller.dpk b/Source/Modulos/Empresas/Controller/Empresas_controller.dpk new file mode 100644 index 00000000..0ae4f23d --- /dev/null +++ b/Source/Modulos/Empresas/Controller/Empresas_controller.dpk @@ -0,0 +1,86 @@ +package Empresas_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} +{%TogetherDiagram 'ModelSupport_Empresas_controller\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorContacto\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorCliente\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uContactosController\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorClientes\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uClientesController\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorContactos\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uClientesController\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorCliente\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorClientes\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorContactos\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorContacto\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uContactosController\default.txvpck'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorInstalador\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorInstaladores\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorVendedores\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorProveedores\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorVendedor\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uInstaladoresController\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uProveedoresController\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uIEditorProveedor\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uVendedoresController\default.txaPackage'} +{%TogetherDiagram 'ModelSupport_Empresas_controller\uVendedoresController\default.txvpck'} + +requires + rtl, + vcl, + DataAbstract_D10, + Base, + GUIBase, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + dsnap, + vcldb, + adortl, + Empresas_model, + Empresas_data; + +contains + uEmpresasController in 'uEmpresasController.pas', + uIEditorEmpresas in 'View\uIEditorEmpresas.pas', + uIEditorEmpresa in 'View\uIEditorEmpresa.pas', + uDatosBancariosEmpresaController in 'uDatosBancariosEmpresaController.pas', + uIEditorDatosBancarioEmpresa in 'View\uIEditorDatosBancarioEmpresa.pas'; + +end. diff --git a/Source/Modulos/Empresas/Controller/Empresas_controller.drc b/Source/Modulos/Empresas/Controller/Empresas_controller.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Controller/Empresas_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Controller/Empresas_controller.rc b/Source/Modulos/Empresas/Controller/Empresas_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Controller/Empresas_controller.res b/Source/Modulos/Empresas/Controller/Empresas_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Empresas/Controller/Empresas_controller.res differ diff --git a/Source/Modulos/Empresas/Controller/ModelSupport_Empresas_controller/Empresas_controller.prjconfig b/Source/Modulos/Empresas/Controller/ModelSupport_Empresas_controller/Empresas_controller.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Empresas/Controller/ModelSupport_Empresas_controller/Empresas_controller.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Empresas/Controller/ModelSupport_Empresas_controller/default.txaPackage b/Source/Modulos/Empresas/Controller/ModelSupport_Empresas_controller/default.txaPackage new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas b/Source/Modulos/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas new file mode 100644 index 00000000..b4d4d6b4 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Controller/View/uIEditorEmpresa.pas b/Source/Modulos/Empresas/Controller/View/uIEditorEmpresa.pas new file mode 100644 index 00000000..9c90c847 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Controller/View/uIEditorEmpresas.pas b/Source/Modulos/Empresas/Controller/View/uIEditorEmpresas.pas new file mode 100644 index 00000000..305881f2 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Controller/uDatosBancariosEmpresaController.pas b/Source/Modulos/Empresas/Controller/uDatosBancariosEmpresaController.pas new file mode 100644 index 00000000..a16c804e --- /dev/null +++ b/Source/Modulos/Empresas/Controller/uDatosBancariosEmpresaController.pas @@ -0,0 +1,142 @@ +unit uDatosBancariosEmpresaController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizEmpresas, uBizEmpresasDatosBancarios, uIDataModuleEmpresas; + +type + IDatosBancariosEmpresaController = interface + ['{E9B0313E-7B16-420A-B47E-20E42E96BAC6}'] + procedure AsignarID(ADetalles: IBizEmpresasDatosBancarios; IDCabecera: Integer; AEsNuevo:Boolean); + procedure Ver(ADatosBancarios : IBizEmpresasDatosBancarios); + end; + + TDatosBancariosEmpresaController = class(TInterfacedObject, IDatosBancariosEmpresaController) + private + FDataModule : IDataModuleEmpresas; + public + procedure Ver(ADatosBancarios : IBizEmpresasDatosBancarios); + procedure AsignarID(ADetalles: IBizEmpresasDatosBancarios; IDCabecera : Integer; AEsNuevo : Boolean); + constructor Create; virtual; + destructor Destroy; override; + end; + +implementation + +{ TDatosBancariosEmpresaController } + +uses + uDataModuleEmpresas, schEmpresasClient_Intf, uIEditorDatosBancarioEmpresa, + uEditorRegistryUtils, cxControls; + +procedure TDatosBancariosEmpresaController.AsignarID( + ADetalles: IBizEmpresasDatosBancarios; IDCabecera: Integer; + AEsNuevo:Boolean); +begin + with ADetalles do + begin + DataTable.DisableControls; + try + if not DataTable.Active then + DataTable.Active := True; + +// AuxPosicion := POSICION; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_EMPRESA := IDCabecera; + Post + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if AEsNuevo then + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_EMPRESA := IDCabecera; + Post + end; + DataTable.Next + end; + end; + finally + DataTable.EnableControls; + end; + end; +end; + +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; + ShowHourglassCursor; + try + CreateEditor('EditorDatosBancariosEmpresa', IEditorDatosBancariosEmpresa, AEditor); + with AEditor do + begin + DatosBancarios := ADatosBancarios; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Empresas/Controller/uEmpresasController.pas b/Source/Modulos/Empresas/Controller/uEmpresasController.pas new file mode 100644 index 00000000..5e8bc077 --- /dev/null +++ b/Source/Modulos/Empresas/Controller/uEmpresasController.pas @@ -0,0 +1,336 @@ +unit uEmpresasController; + +interface + + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, + uBizEmpresas, uIDataModuleEmpresas, uDADataTable; + +type + IEmpresasController = interface + ['{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; + end; + + TEmpresasController = class(TInterfacedObject, IEmpresasController) + protected + FDataModule : IDataModuleEmpresas; + procedure AsignarID(AEmpresa: IBizEmpresa; + const IDNuevo : Integer); virtual; + procedure AsignarIDDetalles(AEmpresa: IBizEmpresa; + const IDCabecera : Integer; ADataTable : TDADataTable); + function ValidarEmpresa(AEmpresa : IBizEmpresa): Boolean; virtual; + public + constructor Create; virtual; + 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; + end; + +implementation + +uses + uEditorRegistryUtils, cxControls, DB, + uDataModuleEmpresas, uIEditorEmpresa; + +{ TEmpresasController } + +procedure TEmpresasController.Anadir(AEmpresa: IBizEmpresa); +begin + AEmpresa.Insert; +end; + +procedure TEmpresasController.AsignarID(AEmpresa: IBizEmpresa; + const IDNuevo: Integer); +var + AContador : Integer; +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada'); + + { Los datos bancarios hay que comprobarlos siempre + tanto en inserción como en modificación. } + if Assigned(AEmpresa.DatosBancarios) then + AsignarIDDetalles(AEmpresa, IDNuevo, AEmpresa.DatosBancarios.DataTable); + + + if AEmpresa.EsNuevo then + begin + AEmpresa.Edit; + AEmpresa.ID := IDNuevo; + AEmpresa.Post; + end; +end; + +procedure TEmpresasController.AsignarIDDetalles(AEmpresa: IBizEmpresa; + const IDCabecera: Integer; ADataTable: TDADataTable); +var + AContador : Integer; +begin + if not ADataTable.Active then + ADataTable.Active := True; + + if AEmpresa.EsNuevo then + begin + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece AEmpresa esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_CONTACTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue AEmpresa 0 quiere decir que hemos + tratado todos los detalles. + } + while ADataTable.RecordCount > 0 do + begin + ADataTable.First; + ADataTable.Edit; + ADataTable.FieldByName('ID').AsInteger := FDataModule.GetNextID(ADataTable.LogicalName); + ADataTable.FieldByName('ID_EMPRESA').AsInteger := IDCabecera; + ADataTable.Post; + end; + end + else begin + { En este caso es un recorrido normal y corriente. } + ADataTable.First; + AContador := ADataTable.RecordCount; + + while (AContador > 0) do + begin + // ¿Es nuevo? + if (ADataTable.FieldByName('ID').AsInteger < 0) then + begin + ADataTable.Edit; + ADataTable.FieldByName('ID').AsInteger := FDataModule.GetNextID(ADataTable.LogicalName); + ADataTable.Post; + end; + AContador := AContador - 1; + ADataTable.Next; + end; + ADataTable.First; + 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 + FDataModule := TDataModuleEmpresas.Create(Nil); +end; + +procedure TEmpresasController.DescartarCambios(AEmpresa: IBizEmpresa); +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada'); + + 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 + Result := False; + + 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; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarEmpresa(AEmpresa) then + begin + ShowHourglassCursor; + try + if AEmpresa.EsNuevo then + NuevoID := FDataModule.GetNextID(AEmpresa.DataTable.LogicalName) + else + NuevoID := AEmpresa.ID; + + AsignarID(AEmpresa, NuevoID); + 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 + Result := False; + + 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 "automáticos" +{ AEmpresa.Edit; + AEmpresa.USUARIO := dmUsuarios.LoginInfo.Usuario; + AEmpresa.Post;} + + Result := True; +end; + +procedure TEmpresasController.Ver(AEmpresa: IBizEmpresa); +var + AEditor : IEditorEmpresa; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorEmpresa', IEditorEmpresa, AEditor); + with AEditor do + begin + Empresa := AEmpresa; + Controller := Self; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TEmpresasController.VerTodos(AEmpresas: IBizEmpresa); +{var + AEditor : IEditorClientes;} +begin +{ CreateEditor('EditorEmpresas', IEditorClientes, AEditor); + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + ShowEmbedded; + end;} +end; + +end. diff --git a/Source/Modulos/Empresas/Data/Empresas_data.bdsproj b/Source/Modulos/Empresas/Data/Empresas_data.bdsproj new file mode 100644 index 00000000..edfe9d47 --- /dev/null +++ b/Source/Modulos/Empresas/Data/Empresas_data.bdsproj @@ -0,0 +1,493 @@ + + + + + + + + + + + + Empresas_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 + Empresas + + + + .\ + ..\..\..\..\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/Empresas/Data/Empresas_data.dpk b/Source/Modulos/Empresas/Data/Empresas_data.dpk new file mode 100644 index 00000000..c4ff6683 --- /dev/null +++ b/Source/Modulos/Empresas/Data/Empresas_data.dpk @@ -0,0 +1,51 @@ +package Empresas_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} +{$DESCRIPTION 'Empresas'} +{$IMPLICITBUILD OFF} +{%TogetherDiagram 'ModelSupport_Empresas_data\default.txaPackage'} + +requires + rtl, + vcl, + dbrtl, + dsnap, + vcldb, + DataAbstract_D10, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Base, + Empresas_model; + +contains + uDataModuleEmpresas in 'uDataModuleEmpresas.pas' {DataModuleEmpresas}; + +end. diff --git a/Source/Modulos/Empresas/Data/Empresas_data.drc b/Source/Modulos/Empresas/Data/Empresas_data.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Data/Empresas_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Data/Empresas_data.rc b/Source/Modulos/Empresas/Data/Empresas_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Data/Empresas_data.res b/Source/Modulos/Empresas/Data/Empresas_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Empresas/Data/Empresas_data.res differ diff --git a/Source/Modulos/Empresas/Data/uDataModuleEmpresas.dfm b/Source/Modulos/Empresas/Data/uDataModuleEmpresas.dfm new file mode 100644 index 00000000..0f1bf0a4 --- /dev/null +++ b/Source/Modulos/Empresas/Data/uDataModuleEmpresas.dfm @@ -0,0 +1,719 @@ +object DataModuleEmpresas: TDataModuleEmpresas + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 427 + Width = 429 + object RORemoteService: TRORemoteService + ServiceName = 'srvEmpresas' + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + Left = 32 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 32 + Top = 112 + end + object tbl_Empresas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CIF' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Raz'#243'n Social' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono 1' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono 2' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil 1' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil 2' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail 1' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail 2' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'P'#225'gina web' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Notas' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Empresas_FECHA_ALTA' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Empresas_FECHA_MODIFICACION' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Empresas_USUARIO' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DisplayWidth = 0 + DisplayLabel = 'Logotipo' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_LOGOTIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Registro mercantil' + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Empresas_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Empresas' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Empresas' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Empresas' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Empresas' + IndexDefs = <> + Left = 176 + Top = 24 + end + object ds_Empresas: TDADataSource + DataTable = tbl_Empresas + Left = 304 + Top = 24 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 32 + Top = 200 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + Left = 32 + Top = 256 + end + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 32 + Top = 312 + end + object ROMessage: TROBinMessage + Left = 32 + Top = 364 + end + object tbl_EmpresasDatosBanco: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'EmpresasDatosBanco_ID_EMPRESA' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del banco' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Entidad' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sucursal' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cuenta' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo 19' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo 58' + Alignment = taLeftJustify + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_EMPRESA=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'EmpresasDatosBanco' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'EmpresasDatosBanco' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'EmpresasDatosBanco' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_Empresas + MasterFields = 'ID' + DetailFields = 'ID_EMPRESA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'EmpresasDatosBanco' + IndexDefs = <> + Left = 176 + Top = 112 + end + object ds_EmpresasDatosBanco: TDADataSource + DataTable = tbl_EmpresasDatosBanco + Left = 304 + Top = 112 + end +end diff --git a/Source/Modulos/Empresas/Data/uDataModuleEmpresas.pas b/Source/Modulos/Empresas/Data/uDataModuleEmpresas.pas new file mode 100644 index 00000000..26dfab8c --- /dev/null +++ b/Source/Modulos/Empresas/Data/uDataModuleEmpresas.pas @@ -0,0 +1,138 @@ +unit uDataModuleEmpresas; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDADesigntimeCall, + uIDataModuleEmpresas, uBizEmpresas, uBizEmpresasDatosBancarios; + +type + TDataModuleEmpresas = class(TDAClientDataModule, IDataModuleEmpresas) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + tbl_Empresas: TDACDSDataTable; + ds_Empresas: TDADataSource; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + tbl_EmpresasDatosBanco: TDACDSDataTable; + ds_EmpresasDatosBanco: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; + function _GetDatosBancarios : IBizEmpresasDatosBancarios; + public + function GetItem(const ID : Integer) : IBizEmpresa; + function NewItem : IBizEmpresa; + function GetItems : IBizEmpresa; + function GetNextID(const DataSetName : String) : Integer; + end; + + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, uDataTableUtils, uDAInterfaces, + FactuGES_Intf, schEmpresasClient_Intf, cxControls; + +procedure TDataModuleEmpresas.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleEmpresas.GetItem(const ID: Integer): IBizEmpresa; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('EMPRESAS.' + fld_EmpresasID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpresas.GetItems: IBizEmpresa; +var + AEmpresa : TDACDSDataTable; +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.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_Empresas then + aGeneratorName := 'GEN_EMPRESAS_ID'; + + if DataSetName = nme_EmpresasDatosBanco then + aGeneratorName := 'GEN_EMPRESAS_DATOS_BANCO_ID'; + + Result := (RORemoteService as IsrvEmpresas).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleEmpresas.NewItem: IBizEmpresa; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleEmpresas._CloneDataTable( + const ADataTable: TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleEmpresas._GetDatosBancarios: IBizEmpresasDatosBancarios; +var + ADatosBancarios : TDACDSDataTable; +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; + +initialization + +end. \ No newline at end of file diff --git a/Source/Modulos/Empresas/Empresas_Group.bdsgroup b/Source/Modulos/Empresas/Empresas_Group.bdsgroup new file mode 100644 index 00000000..3fefbff7 --- /dev/null +++ b/Source/Modulos/Empresas/Empresas_Group.bdsgroup @@ -0,0 +1,31 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Empresas_model.bdsproj + Data\Empresas_data.bdsproj + Controller\Empresas_controller.bdsproj + Views\Empresas_view.bdsproj + Plugin\Empresas_plugin.bdsproj + Test\Empresas_Tests.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Empresas_model.bpl Empresas_data.bpl Empresas_controller.bpl Empresas_view.bpl Empresas_plugin.bpl Empresas_Tests.exe + + + + + + + + + + diff --git a/Source/Modulos/Empresas/Model/Data/uIDataModuleEmpresas.pas b/Source/Modulos/Empresas/Model/Data/uIDataModuleEmpresas.pas new file mode 100644 index 00000000..628a7bef --- /dev/null +++ b/Source/Modulos/Empresas/Model/Data/uIDataModuleEmpresas.pas @@ -0,0 +1,20 @@ +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 GetNextID(const DataSetName : String) : Integer; + end; + +implementation + +end. diff --git a/Source/Modulos/Empresas/Model/Empresas_model.bdsproj b/Source/Modulos/Empresas/Model/Empresas_model.bdsproj new file mode 100644 index 00000000..84e8891d --- /dev/null +++ b/Source/Modulos/Empresas/Model/Empresas_model.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + Empresas_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 + Empresas + + + + .\ + ..\..\..\..\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/Empresas/Model/Empresas_model.dpk b/Source/Modulos/Empresas/Model/Empresas_model.dpk new file mode 100644 index 00000000..1de1c0f6 --- /dev/null +++ b/Source/Modulos/Empresas/Model/Empresas_model.dpk @@ -0,0 +1,53 @@ +package Empresas_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} +{$DESCRIPTION 'Empresas'} +{$IMPLICITBUILD OFF} + +requires + rtl, + dbrtl, + vcl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base; + +contains + uBizEmpresas in 'uBizEmpresas.pas', + uIDataModuleEmpresas in 'Data\uIDataModuleEmpresas.pas', + schEmpresasClient_Intf in 'schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in 'schEmpresasServer_Intf.pas', + uBizEmpresasDatosBancarios in 'uBizEmpresasDatosBancarios.pas'; + +end. diff --git a/Source/Modulos/Empresas/Model/Empresas_model.drc b/Source/Modulos/Empresas/Model/Empresas_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Model/Empresas_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Model/Empresas_model.rc b/Source/Modulos/Empresas/Model/Empresas_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Model/Empresas_model.res b/Source/Modulos/Empresas/Model/Empresas_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Empresas/Model/Empresas_model.res differ diff --git a/Source/Modulos/Empresas/Model/schEmpresasClient_Intf.pas b/Source/Modulos/Empresas/Model/schEmpresasClient_Intf.pas new file mode 100644 index 00000000..1f2a557f --- /dev/null +++ b/Source/Modulos/Empresas/Model/schEmpresasClient_Intf.pas @@ -0,0 +1,1346 @@ +unit schEmpresasClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{BDE24289-FA14-4BFD-90FC-C75CDA2903B4}'; + RID_EmpresasDatosBanco = '{B38F881C-BE9D-4956-BC5B-06C922A088A8}'; + RID_Empresas_Refresh = '{74AFE46D-F556-467E-A6AE-1B30229DB923}'; + RID_EmpresasDatosBanco_Refresh = '{A43716FA-0A11-4A8F-9FFA-9DF825914C22}'; + + { Data table names } + nme_Empresas = 'Empresas'; + nme_EmpresasDatosBanco = 'EmpresasDatosBanco'; + nme_Empresas_Refresh = 'Empresas_Refresh'; + nme_EmpresasDatosBanco_Refresh = 'EmpresasDatosBanco_Refresh'; + + { 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_EmpresasIVA = 'IVA'; + + { 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_EmpresasIVA = 22; + + { 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'; + + { 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; + + { Empresas_Refresh fields } + fld_Empresas_RefreshID = 'ID'; + fld_Empresas_RefreshNIF_CIF = 'NIF_CIF'; + fld_Empresas_RefreshNOMBRE = 'NOMBRE'; + fld_Empresas_RefreshRAZON_SOCIAL = 'RAZON_SOCIAL'; + fld_Empresas_RefreshCALLE = 'CALLE'; + fld_Empresas_RefreshPOBLACION = 'POBLACION'; + fld_Empresas_RefreshPROVINCIA = 'PROVINCIA'; + fld_Empresas_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_Empresas_RefreshTELEFONO_1 = 'TELEFONO_1'; + fld_Empresas_RefreshTELEFONO_2 = 'TELEFONO_2'; + fld_Empresas_RefreshMOVIL_1 = 'MOVIL_1'; + fld_Empresas_RefreshMOVIL_2 = 'MOVIL_2'; + fld_Empresas_RefreshFAX = 'FAX'; + fld_Empresas_RefreshEMAIL_1 = 'EMAIL_1'; + fld_Empresas_RefreshEMAIL_2 = 'EMAIL_2'; + fld_Empresas_RefreshPAGINA_WEB = 'PAGINA_WEB'; + fld_Empresas_RefreshNOTAS = 'NOTAS'; + fld_Empresas_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_Empresas_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_Empresas_RefreshUSUARIO = 'USUARIO'; + fld_Empresas_RefreshLOGOTIPO = 'LOGOTIPO'; + fld_Empresas_RefreshREGISTRO_MERCANTIL = 'REGISTRO_MERCANTIL'; + fld_Empresas_RefreshIVA = 'IVA'; + + { Empresas_Refresh field indexes } + idx_Empresas_RefreshID = 0; + idx_Empresas_RefreshNIF_CIF = 1; + idx_Empresas_RefreshNOMBRE = 2; + idx_Empresas_RefreshRAZON_SOCIAL = 3; + idx_Empresas_RefreshCALLE = 4; + idx_Empresas_RefreshPOBLACION = 5; + idx_Empresas_RefreshPROVINCIA = 6; + idx_Empresas_RefreshCODIGO_POSTAL = 7; + idx_Empresas_RefreshTELEFONO_1 = 8; + idx_Empresas_RefreshTELEFONO_2 = 9; + idx_Empresas_RefreshMOVIL_1 = 10; + idx_Empresas_RefreshMOVIL_2 = 11; + idx_Empresas_RefreshFAX = 12; + idx_Empresas_RefreshEMAIL_1 = 13; + idx_Empresas_RefreshEMAIL_2 = 14; + idx_Empresas_RefreshPAGINA_WEB = 15; + idx_Empresas_RefreshNOTAS = 16; + idx_Empresas_RefreshFECHA_ALTA = 17; + idx_Empresas_RefreshFECHA_MODIFICACION = 18; + idx_Empresas_RefreshUSUARIO = 19; + idx_Empresas_RefreshLOGOTIPO = 20; + idx_Empresas_RefreshREGISTRO_MERCANTIL = 21; + idx_Empresas_RefreshIVA = 22; + + { EmpresasDatosBanco_Refresh fields } + fld_EmpresasDatosBanco_RefreshID = 'ID'; + fld_EmpresasDatosBanco_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_EmpresasDatosBanco_RefreshNOMBRE = 'NOMBRE'; + fld_EmpresasDatosBanco_RefreshENTIDAD = 'ENTIDAD'; + fld_EmpresasDatosBanco_RefreshSUCURSAL = 'SUCURSAL'; + fld_EmpresasDatosBanco_RefreshDC = 'DC'; + fld_EmpresasDatosBanco_RefreshCUENTA = 'CUENTA'; + fld_EmpresasDatosBanco_RefreshSUFIJO_N19 = 'SUFIJO_N19'; + fld_EmpresasDatosBanco_RefreshSUFIJO_N58 = 'SUFIJO_N58'; + + { EmpresasDatosBanco_Refresh field indexes } + idx_EmpresasDatosBanco_RefreshID = 0; + idx_EmpresasDatosBanco_RefreshID_EMPRESA = 1; + idx_EmpresasDatosBanco_RefreshNOMBRE = 2; + idx_EmpresasDatosBanco_RefreshENTIDAD = 3; + idx_EmpresasDatosBanco_RefreshSUCURSAL = 4; + idx_EmpresasDatosBanco_RefreshDC = 5; + idx_EmpresasDatosBanco_RefreshCUENTA = 6; + idx_EmpresasDatosBanco_RefreshSUFIJO_N19 = 7; + idx_EmpresasDatosBanco_RefreshSUFIJO_N58 = 8; + +type + { IEmpresas } + IEmpresas = interface(IDAStronglyTypedDataTable) + ['{F5A4EFC5-47CF-4091-B7EA-B1F6F93195F5}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetRAZON_SOCIALValue: String; + procedure SetRAZON_SOCIALValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetLOGOTIPOValue: IROStream; + procedure SetLOGOTIPOValue(const aValue: IROStream); + function GetREGISTRO_MERCANTILValue: String; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property IVA: Float read GetIVAValue write SetIVAValue; + end; + + { TEmpresasDataTableRules } + TEmpresasDataTableRules = class(TDADataTableRules, IEmpresas) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + procedure SetLOGOTIPOValue(const aValue: IROStream); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property IVA: Float read GetIVAValue write SetIVAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBanco } + IEmpresasDatosBanco = interface(IDAStronglyTypedDataTable) + ['{83F8EA10-9660-49FD-8A99-6C9775B435F7}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + end; + + { TEmpresasDatosBancoDataTableRules } + TEmpresasDatosBancoDataTableRules = class(TDADataTableRules, IEmpresasDatosBanco) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpresas_Refresh } + IEmpresas_Refresh = interface(IDAStronglyTypedDataTable) + ['{F4E3D225-DEB3-4ADD-BA79-2845247B3A3A}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetRAZON_SOCIALValue: String; + procedure SetRAZON_SOCIALValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetNOTASValue: IROStrings; + procedure SetNOTASValue(const aValue: IROStrings); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetLOGOTIPOValue: IROStream; + procedure SetLOGOTIPOValue(const aValue: IROStream); + function GetREGISTRO_MERCANTILValue: String; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property IVA: Float read GetIVAValue write SetIVAValue; + end; + + { TEmpresas_RefreshDataTableRules } + TEmpresas_RefreshDataTableRules = class(TDADataTableRules, IEmpresas_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + procedure SetLOGOTIPOValue(const aValue: IROStream); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property FAX: String read GetFAXValue write SetFAXValue; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property IVA: Float read GetIVAValue write SetIVAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBanco_Refresh } + IEmpresasDatosBanco_Refresh = interface(IDAStronglyTypedDataTable) + ['{15A7C527-4B34-4012-8FCB-215C4EFDD4FA}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + end; + + { TEmpresasDatosBanco_RefreshDataTableRules } + TEmpresasDatosBanco_RefreshDataTableRules = class(TDADataTableRules, IEmpresasDatosBanco_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TEmpresasDataTableRules } +constructor TEmpresasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEmpresasDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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_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.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_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.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.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_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.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.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_EmpresasNOTAS].AsString; +end; + +procedure TEmpresasDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_EmpresasNOTAS].AsString := aValue.Text; +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_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.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.GetLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + DataTable.Fields[idx_EmpresasLOGOTIPO].SaveToStream(result); +end; + +procedure TEmpresasDataTableRules.SetLOGOTIPOValue(const aValue: IROStream); +begin + DataTable.Fields[idx_EmpresasLOGOTIPO].LoadFromStream(aValue); +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.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_EmpresasIVA].AsFloat; +end; + +procedure TEmpresasDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_EmpresasIVA].AsFloat := aValue; +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.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.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.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.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.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.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.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_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; + + +{ TEmpresas_RefreshDataTableRules } +constructor TEmpresas_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEmpresas_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TEmpresas_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Empresas_RefreshID].AsInteger; +end; + +procedure TEmpresas_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Empresas_RefreshID].AsInteger := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshNIF_CIF].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshNIF_CIF].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshNOMBRE].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshNOMBRE].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetRAZON_SOCIALValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshRAZON_SOCIAL].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetRAZON_SOCIALValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshRAZON_SOCIAL].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshCALLE].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshCALLE].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshPOBLACION].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshPOBLACION].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshPROVINCIA].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshPROVINCIA].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshTELEFONO_1].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshTELEFONO_1].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshTELEFONO_2].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshTELEFONO_2].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshMOVIL_1].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshMOVIL_1].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshMOVIL_2].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshMOVIL_2].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshFAX].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshFAX].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshEMAIL_1].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshEMAIL_1].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshEMAIL_2].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshEMAIL_2].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshPAGINA_WEB].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshPAGINA_WEB].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_Empresas_RefreshNOTAS].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetNOTASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_Empresas_RefreshNOTAS].AsString := aValue.Text; +end; + +function TEmpresas_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_Empresas_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TEmpresas_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Empresas_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_Empresas_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TEmpresas_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Empresas_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshUSUARIO].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshUSUARIO].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + DataTable.Fields[idx_Empresas_RefreshLOGOTIPO].SaveToStream(result); +end; + +procedure TEmpresas_RefreshDataTableRules.SetLOGOTIPOValue(const aValue: IROStream); +begin + DataTable.Fields[idx_Empresas_RefreshLOGOTIPO].LoadFromStream(aValue); +end; + +function TEmpresas_RefreshDataTableRules.GetREGISTRO_MERCANTILValue: String; +begin + result := DataTable.Fields[idx_Empresas_RefreshREGISTRO_MERCANTIL].AsString; +end; + +procedure TEmpresas_RefreshDataTableRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + DataTable.Fields[idx_Empresas_RefreshREGISTRO_MERCANTIL].AsString := aValue; +end; + +function TEmpresas_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_Empresas_RefreshIVA].AsFloat; +end; + +procedure TEmpresas_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_Empresas_RefreshIVA].AsFloat := aValue; +end; + + +{ TEmpresasDatosBanco_RefreshDataTableRules } +constructor TEmpresasDatosBanco_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEmpresasDatosBanco_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshID].AsInteger; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshID].AsInteger := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshID_EMPRESA].AsInteger; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshNOMBRE].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshNOMBRE].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshENTIDAD].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshENTIDAD].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUCURSAL].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUCURSAL].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshDC].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshDC].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshCUENTA].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshCUENTA].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUFIJO_N19].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUFIJO_N19].AsString := aValue; +end; + +function TEmpresasDatosBanco_RefreshDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUFIJO_N58].AsString; +end; + +procedure TEmpresasDatosBanco_RefreshDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBanco_RefreshSUFIJO_N58].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_Empresas, TEmpresasDataTableRules); + RegisterDataTableRules(RID_EmpresasDatosBanco, TEmpresasDatosBancoDataTableRules); + RegisterDataTableRules(RID_Empresas_Refresh, TEmpresas_RefreshDataTableRules); + RegisterDataTableRules(RID_EmpresasDatosBanco_Refresh, TEmpresasDatosBanco_RefreshDataTableRules); + +end. diff --git a/Source/Modulos/Empresas/Model/schEmpresasServer_Intf.pas b/Source/Modulos/Empresas/Model/schEmpresasServer_Intf.pas new file mode 100644 index 00000000..ed542d8c --- /dev/null +++ b/Source/Modulos/Empresas/Model/schEmpresasServer_Intf.pas @@ -0,0 +1,1581 @@ +unit schEmpresasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{6B1221C2-AF55-4833-86A5-B17E72AD9776}'; + RID_EmpresasDatosBancoDelta = '{5ADBB10D-263B-49A2-9F6E-B432AB5A76D1}'; + RID_Empresas_RefreshDelta = '{922EDFCA-3764-4B42-9B8D-BF1841156D54}'; + RID_EmpresasDatosBanco_RefreshDelta = '{BF0D6D54-14FC-4676-B1A0-DF972799F923}'; + +type + { IEmpresasDelta } + IEmpresasDelta = interface(IEmpresas) + ['{6B1221C2-AF55-4833-86A5-B17E72AD9776}'] + { 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 GetOldIVAValue : Float; + + { 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 OldIVA : Float read GetOldIVAValue; + end; + + { TEmpresasBusinessProcessorRules } + TEmpresasBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresas, IEmpresasDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + function GetOldRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetOldLOGOTIPOValue: IROStream; virtual; + procedure SetLOGOTIPOValue(const aValue: IROStream); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + function GetOldREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property RAZON_SOCIAL : String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property LOGOTIPO : IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property OldLOGOTIPO : IROStream read GetOldLOGOTIPOValue; + property REGISTRO_MERCANTIL : String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBancoDelta } + IEmpresasDatosBancoDelta = interface(IEmpresasDatosBanco) + ['{5ADBB10D-263B-49A2-9F6E-B432AB5A76D1}'] + { 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; + + { 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; + end; + + { TEmpresasDatosBancoBusinessProcessorRules } + TEmpresasDatosBancoBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresasDatosBanco, IEmpresasDatosBancoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpresas_RefreshDelta } + IEmpresas_RefreshDelta = interface(IEmpresas_Refresh) + ['{922EDFCA-3764-4B42-9B8D-BF1841156D54}'] + { 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 GetOldIVAValue : Float; + + { 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 OldIVA : Float read GetOldIVAValue; + end; + + { TEmpresas_RefreshBusinessProcessorRules } + TEmpresas_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresas_Refresh, IEmpresas_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetRAZON_SOCIALValue: String; virtual; + function GetOldRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetMOVIL_1Value: String; virtual; + function GetOldMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_2Value: String; virtual; + function GetOldMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetFAXValue: String; virtual; + function GetOldFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetEMAIL_1Value: String; virtual; + function GetOldEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_2Value: String; virtual; + function GetOldEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetOldNOTASValue: IROStrings; virtual; + procedure SetNOTASValue(const aValue: IROStrings); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetOldLOGOTIPOValue: IROStream; virtual; + procedure SetLOGOTIPOValue(const aValue: IROStream); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + function GetOldREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property RAZON_SOCIAL : String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property FAX : String read GetFAXValue write SetFAXValue; + property OldFAX : String read GetOldFAXValue; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property NOTAS : IROStrings read GetNOTASValue write SetNOTASValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property LOGOTIPO : IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue; + property OldLOGOTIPO : IROStream read GetOldLOGOTIPOValue; + property REGISTRO_MERCANTIL : String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBanco_RefreshDelta } + IEmpresasDatosBanco_RefreshDelta = interface(IEmpresasDatosBanco_Refresh) + ['{BF0D6D54-14FC-4676-B1A0-DF972799F923}'] + { 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; + + { 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; + end; + + { TEmpresasDatosBanco_RefreshBusinessProcessorRules } + TEmpresasDatosBanco_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresasDatosBanco_Refresh, IEmpresasDatosBanco_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TEmpresasBusinessProcessorRules } +constructor TEmpresasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEmpresasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEmpresasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID]; +end; + +function TEmpresasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID]; +end; + +procedure TEmpresasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNIF_CIF]; +end; + +procedure TEmpresasBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOMBRE]; +end; + +procedure TEmpresasBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +procedure TEmpresasBusinessProcessorRules.SetRAZON_SOCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCALLE]; +end; + +procedure TEmpresasBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPOBLACION]; +end; + +procedure TEmpresasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPROVINCIA]; +end; + +procedure TEmpresasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +procedure TEmpresasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_1]; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_2]; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_1]; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_2]; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFAX]; +end; + +procedure TEmpresasBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_1]; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_2]; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPAGINA_WEB]; +end; + +procedure TEmpresasBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOTAS]; +end; + +procedure TEmpresasBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS] := aValue.Text; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_ALTA]; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasUSUARIO]; +end; + +procedure TEmpresasBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO], result.Stream); +end; + +function TEmpresasBusinessProcessorRules.GetOldLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasLOGOTIPO], result.Stream); +end; + +procedure TEmpresasBusinessProcessorRules.SetLOGOTIPOValue(const aValue: IROStream); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO] := VariantBinaryFromBinary(aValue.Stream); +end; + +function TEmpresasBusinessProcessorRules.GetREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +procedure TEmpresasBusinessProcessorRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL] := aValue; +end; + +function TEmpresasBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasIVA]; +end; + +procedure TEmpresasBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoDC]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19] := aValue; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58] := aValue; +end; + + +{ TEmpresas_RefreshBusinessProcessorRules } +constructor TEmpresas_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEmpresas_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshID]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshID]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshID] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNIF_CIF]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshNIF_CIF]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNIF_CIF] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNOMBRE]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshNOMBRE]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNOMBRE] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshRAZON_SOCIAL]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshRAZON_SOCIAL]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetRAZON_SOCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshRAZON_SOCIAL] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshCALLE]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshCALLE]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshCALLE] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPOBLACION]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshPOBLACION]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPOBLACION] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPROVINCIA]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshPROVINCIA]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPROVINCIA] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshCODIGO_POSTAL]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshCODIGO_POSTAL]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshCODIGO_POSTAL] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshTELEFONO_1]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshTELEFONO_1]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshTELEFONO_1] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshTELEFONO_2]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshTELEFONO_2]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshTELEFONO_2] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshMOVIL_1]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshMOVIL_1]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshMOVIL_1] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshMOVIL_2]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshMOVIL_2]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshMOVIL_2] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFAX]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshFAX]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFAX] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshEMAIL_1]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshEMAIL_1]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshEMAIL_1] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshEMAIL_2]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshEMAIL_2]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshEMAIL_2] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPAGINA_WEB]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshPAGINA_WEB]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshPAGINA_WEB] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNOTAS]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshNOTAS]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetNOTASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshNOTAS] := aValue.Text; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFECHA_ALTA]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshFECHA_ALTA]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFECHA_ALTA] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFECHA_MODIFICACION]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshFECHA_MODIFICACION]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshUSUARIO]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshUSUARIO]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshUSUARIO] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshLOGOTIPO], result.Stream); +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshLOGOTIPO], result.Stream); +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetLOGOTIPOValue(const aValue: IROStream); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshLOGOTIPO] := VariantBinaryFromBinary(aValue.Stream); +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshREGISTRO_MERCANTIL]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshREGISTRO_MERCANTIL]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshREGISTRO_MERCANTIL] := aValue; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshIVA]; +end; + +function TEmpresas_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Empresas_RefreshIVA]; +end; + +procedure TEmpresas_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Empresas_RefreshIVA] := aValue; +end; + + +{ TEmpresasDatosBanco_RefreshBusinessProcessorRules } +constructor TEmpresasDatosBanco_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEmpresasDatosBanco_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshID]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshID]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshID] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshID_EMPRESA]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshID_EMPRESA]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshID_EMPRESA] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshNOMBRE]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshNOMBRE]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshNOMBRE] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshENTIDAD]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshENTIDAD]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshENTIDAD] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUCURSAL]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshSUCURSAL]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUCURSAL] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshDC]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshDC]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshDC] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshCUENTA]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshCUENTA]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshCUENTA] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N19]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N19]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N19] := aValue; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N58]; +end; + +function TEmpresasDatosBanco_RefreshBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N58]; +end; + +procedure TEmpresasDatosBanco_RefreshBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBanco_RefreshSUFIJO_N58] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_EmpresasDelta, TEmpresasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_EmpresasDatosBancoDelta, TEmpresasDatosBancoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Empresas_RefreshDelta, TEmpresas_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_EmpresasDatosBanco_RefreshDelta, TEmpresasDatosBanco_RefreshBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Empresas/Model/uBizEmpresas.pas b/Source/Modulos/Empresas/Model/uBizEmpresas.pas new file mode 100644 index 00000000..be05cd05 --- /dev/null +++ b/Source/Modulos/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; + +{ 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 := dmUsuarios.LoginInfo.Usuario; +end; + +procedure TBizEmpresa.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + 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/Modulos/Empresas/Model/uBizEmpresasDatosBancarios.pas b/Source/Modulos/Empresas/Model/uBizEmpresasDatosBancarios.pas new file mode 100644 index 00000000..d86524c7 --- /dev/null +++ b/Source/Modulos/Empresas/Model/uBizEmpresasDatosBancarios.pas @@ -0,0 +1,58 @@ +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; + procedure OnNewRecord(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; + +procedure TBizEmpresasDatosBancarios.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS, TBizEmpresasDatosBancarios); + + +end. diff --git a/Source/Modulos/Empresas/Plugin/Empresas_plugin.bdsproj b/Source/Modulos/Empresas/Plugin/Empresas_plugin.bdsproj new file mode 100644 index 00000000..f5a22bd8 --- /dev/null +++ b/Source/Modulos/Empresas/Plugin/Empresas_plugin.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Empresas_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/Empresas/Plugin/Empresas_plugin.dpk b/Source/Modulos/Empresas/Plugin/Empresas_plugin.dpk new file mode 100644 index 00000000..b3ef334c --- /dev/null +++ b/Source/Modulos/Empresas/Plugin/Empresas_plugin.dpk @@ -0,0 +1,55 @@ +package Empresas_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 + rtl, + vcl, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + Usuarios, + Empresas_model, + Empresas_data, + Empresas_controller, + Empresas_view; + +contains + uPluginEmpresas in 'uPluginEmpresas.pas' {PluginEmpresas: TDataModule}; + +end. diff --git a/Source/Modulos/Empresas/Plugin/Empresas_plugin.drc b/Source/Modulos/Empresas/Plugin/Empresas_plugin.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Plugin/Empresas_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Plugin/Empresas_plugin.rc b/Source/Modulos/Empresas/Plugin/Empresas_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Plugin/Empresas_plugin.res b/Source/Modulos/Empresas/Plugin/Empresas_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Empresas/Plugin/Empresas_plugin.res differ diff --git a/Source/Modulos/Empresas/Plugin/uPluginEmpresas.dfm b/Source/Modulos/Empresas/Plugin/uPluginEmpresas.dfm new file mode 100644 index 00000000..cbe91335 --- /dev/null +++ b/Source/Modulos/Empresas/Plugin/uPluginEmpresas.dfm @@ -0,0 +1,816 @@ +object PluginEmpresas: TPluginEmpresas + OldCreateOrder = True + DefaultAction = actNuevaEmpresa + ModuleMenu = MainMenu + ModuleName = 'Empresas' + SmallImages = SmallImages + LargeImages = LargeImages + Version = '1.0' + Height = 193 + Width = 422 + 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 = 'PngImage1' + 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 = '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 + 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 = 'PngImage4' + 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> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actDatosDe: TAction + Category = 'Empresa' + Caption = 'Datos de...' + OnExecute = actDatosDeExecute + OnUpdate = actDatosDeUpdate + end + object actPreferencias: TAction + Category = 'Empresa' + Caption = 'Preferencias' + Visible = False + end + object actGestionEmpresas: TAction + Category = 'Empresa' + Caption = 'Gesti'#243'n de empresas' + end + object actSucursales: TAction + Category = 'Empresa' + Caption = 'Sucursales' + Visible = False + end + object actNuevaEmpresa: TAction + Category = 'Empresa' + Caption = 'Nueva empresa...' + OnExecute = actNuevaEmpresaExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Empresas1: TMenuItem + Caption = 'Empresa' + object Gestindeempresas1: TMenuItem + Tag = -1000 + Action = actGestionEmpresas + end + object N2: TMenuItem + Tag = -100 + Caption = '-' + end + object N1: TMenuItem + Tag = 7000 + Caption = '-' + end + object Sucursales1: TMenuItem + Tag = 8000 + Action = actSucursales + end + object N3: TMenuItem + Tag = 8999 + Caption = '-' + end + object Datosde1: TMenuItem + Tag = 9000 + Action = actDatosDe + end + object Preferencias1: TMenuItem + Tag = 9001 + Action = actPreferencias + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + 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 = '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 + 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 = 'PngImage4' + 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> + 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 + 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 + F73EE77CFEFC2FF784F3FB25D29F33000002F94944415478DAED946B48936114 + C7FFAFDA55CD5CD32E46609161D087082129E8B2794B50495B5EBE140C83A2CF + 5DD13E9804111195502441068D04D32C2DCD6181592D2F594CF2B291A6DB9C9A + 3AB3E9DE4BCFFB583ADBC539621FA2030FE7BCCF7B38BF739EFFF3BE8C2008F0 + A531FF81FF06F0C1538DCFA833C0ACE418AF0AB09C008EE389E7A9A7316F1753 + 4F72C8DEE16379738131992F3C06092C814D0AB05949C1499EC6A2E726391AF3 + 53FCF462593434C9A0EFEDC3D9C2DB8E408D4A3E079CBCAF1B79B9B92EC13CE9 + 9CA71371484C54A1B367250519BF1E8454A202C3F2A86F96A1B7DFE01A289A18 + 3B837D1CEE41526427584B3F0282D7A15ABF195181AB29505C29296568D70661 + 602083E64B034BA06E96A3DF64723FA13D6C7D481DB871330C5C268D4558EDE0 + 1EC449EB0874033A0CB1D8145401FFE070B4E9B7233DBD122FEB8F206CF93D90 + 2E50D3120FD3A0D939D0D951AEF55711D10418F82CACF12BA1B07869036A0677 + 412E7D8EAED14C44853CA1B96D2639148A2A68DFF95198B8AA5A1330343CE439 + 904E68311260CEAF097BC060290458E9849FBEEC40B4A49A4EA8698F46764E2D + B48DC20CB0A23901639611F740671746D4483BDA4735B459745814BC916A1881 + 20FA8EB5D91C60A29569E2F07D626CFE5BCA5A05A426E928542C68316A21E938 + E3F6735992B6172B264261669508636ED1BDD2B73258ADE3EE2714619C75F6FB + 12FDFD832711A3CCC754F8162C1EF83C9DA77B4CFD88DE40FDF9E216DC39B77F + 4E138F2CC7B12C34C21138DFDFA3AB681B56C91488DA79091D6F4ED35CB3BE89 + 7A3F5D37F5C56A036E141C70682223BFD111F8EC55ABDBE3EAEB7C8FADC6425A + D49919BE5971B5E894D32644E0CD6B57668197AFDF852716116841E58961B739 + CA8B6AFBC7F2F680D4B41F8C843E5020C3301EC1447B5D10292C5447D280A258 + 6D2DF51AE8A98EF60D1020E32DF01029984DC2341729E54795BBD3FE6CC02BA0 + 088B8D8D7EB800FD6803645D20C00FDE003DD2EFF734CE6CC1404FF4FB9BC079 + F5B33F3E97405F9ACF813F01DF078FC2BAE18F2B0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + 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/Empresas/Plugin/uPluginEmpresas.pas b/Source/Modulos/Empresas/Plugin/uPluginEmpresas.pas new file mode 100644 index 00000000..b4f7d79f --- /dev/null +++ b/Source/Modulos/Empresas/Plugin/uPluginEmpresas.pas @@ -0,0 +1,142 @@ +unit uPluginEmpresas; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uBizEmpresas, + uEmpresasController; + +type + IEmpresasPlugin = interface(IInterface) + ['{4E732376-FFD0-4E72-846A-224A6E27FA85}'] + function Empresas : TStringList; + function Controller : IEmpresasController; + end; + + TPluginEmpresas = class(TModuleController, IEmpresasPlugin) + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Empresas1: TMenuItem; + Preferencias1: TMenuItem; + N1: TMenuItem; + Gestindeempresas1: TMenuItem; + Datosde1: TMenuItem; + actDatosDe: TAction; + actPreferencias: TAction; + actGestionEmpresas: TAction; + N2: TMenuItem; + actSucursales: TAction; + Sucursales1: TMenuItem; + N3: TMenuItem; + actNuevaEmpresa: TAction; + procedure actDatosDeUpdate(Sender: TObject); + procedure actDatosDeExecute(Sender: TObject); + procedure actNuevaEmpresaExecute(Sender: TObject); + protected + function Empresas : TStringList; + function Controller : IEmpresasController; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, + uDataModuleUsuarios, uEmpresasViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginEmpresas.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleEmpresas ******************************* +} +procedure TPluginEmpresas.actDatosDeExecute(Sender: TObject); +var + AController : IEmpresasController; +begin + AController := TEmpresasController.Create; + AController.Ver(dmUsuarios.EmpresaActual); +end; + +procedure TPluginEmpresas.actDatosDeUpdate(Sender: TObject); +begin + with (Sender as TAction) do + begin + if Assigned(dmUsuarios.EmpresaActual) then + begin + Enabled := True; + Caption := 'Datos de ' + dmUsuarios.EmpresaActual.NOMBRE + end + else begin + Enabled := False; + Caption := 'Datos de la empresa'; + end; + end; +end; + +procedure TPluginEmpresas.actNuevaEmpresaExecute(Sender: TObject); +var + AEmpresasController : IEmpresasController; + AEmpresa : IBizEmpresa; +begin + AEmpresasController := TEmpresasController.Create; + AEmpresa := AEmpresasController.Nuevo; + try + AEmpresasController.Ver(AEmpresa); + finally + AEmpresa := NIL; + end; +end; + +function TPluginEmpresas.Controller: IEmpresasController; +begin + Result := TEmpresasController.Create; +end; + +function TPluginEmpresas.Empresas: TStringList; +var + AEmpresasController : IEmpresasController; + AEmpresas : IBizEmpresa; +begin + AEmpresasController := TEmpresasController.Create; + AEmpresas := AEmpresasController.BuscarTodos; + try + Result := AEmpresasController.ToStringList(AEmpresas); + finally + AEmpresasController := NIL; + end; +end; + +constructor TPluginEmpresas.Create(AOwner: TComponent); +begin + inherited; + uEmpresasViewRegister.RegisterViews; +end; + +destructor TPluginEmpresas.Destroy; +begin + uEmpresasViewRegister.UnregisterViews; + inherited; +end; + + +initialization + uHostManager.RegisterModuleClass(TPluginEmpresas); + +finalization + uHostManager.UnRegisterModuleClass(TPluginEmpresas); + +end. diff --git a/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.dfm b/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.dfm new file mode 100644 index 00000000..7b8f6f27 --- /dev/null +++ b/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.dfm @@ -0,0 +1,2042 @@ +object srvEmpresas: TsrvEmpresas + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schEmpresas + ServiceAdapter = BINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 157 + Width = 351 + object schEmpresas: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS' + SQL = + 'SELECT'#10' ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, ' + + #10' PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, ' + + #10' MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, '#10' FEC' + + 'HA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,'#10' REGISTRO_MER' + + 'CANTIL, IVA'#10' FROM'#10' EMPRESAS' + 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 = '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 = 'IVA' + TableField = 'IVA' + end> + end> + Name = 'Empresas' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DictionaryEntry = 'Empresas_LOGOTIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_DATOS_BANCO' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENT' + + 'A, '#10' SUFIJO_N19, SUFIJO_N58'#10' FROM'#10' EMPRESAS_DATOS_BANCO'#10'W' + + 'HERE ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + 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> + end> + Name = 'EmpresasDatosBanco' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS' + SQL = + 'SELECT'#10' ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, ' + + #10' PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, ' + + #10' MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, '#10' FEC' + + 'HA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,'#10' REGISTRO_MER' + + 'CANTIL, IVA'#10' FROM'#10' EMPRESAS'#10'WHERE ID = :ID' + 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 = '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 = 'IVA' + TableField = 'IVA' + end> + end> + Name = 'Empresas_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_TELEFONO_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_TELEFONO_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_MOVIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_MOVIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FAX' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_EMAIL_1' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_EMAIL_2' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_PAGINA_WEB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_NOTAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DictionaryEntry = 'Empresas_LOGOTIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Empresas_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_DATOS_BANCO' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENT' + + 'A, '#10' SUFIJO_N19, SUFIJO_N58'#10' FROM'#10' EMPRESAS_DATOS_BANCO'#10'W' + + 'HERE ID = :ID' + StatementType = stSQL + 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> + end> + Name = 'EmpresasDatosBanco_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS' + SQL = + 'INSERT'#10' INTO EMPRESAS'#10' (ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, C' + + 'ALLE, POBLACION, '#10' PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TEL' + + 'EFONO_2, MOVIL_1, '#10' MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_W' + + 'EB, NOTAS, '#10' FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTI' + + 'PO, '#10' REGISTRO_MERCANTIL, IVA)'#10' VALUES'#10' (:ID, :NIF_CIF, ' + + ':NOMBRE, :RAZON_SOCIAL, :CALLE, :POBLACION, '#10' :PROVINCIA, :C' + + 'ODIGO_POSTAL, :TELEFONO_1, :TELEFONO_2, '#10' :MOVIL_1, :MOVIL_2' + + ', :FAX, :EMAIL_1, :EMAIL_2, :PAGINA_WEB, '#10' :NOTAS, :FECHA_AL' + + 'TA, :FECHA_MODIFICACION, :USUARIO, '#10' :LOGOTIPO, :REGISTRO_ME' + + 'RCANTIL, :IVA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Empresas' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS' + SQL = 'DELETE '#10' FROM'#10' EMPRESAS'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Empresas' + end + item + Params = < + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS' + SQL = + 'UPDATE EMPRESAS'#10' SET '#10' NIF_CIF = :NIF_CIF,'#10' NOMBRE = :NOM' + + 'BRE, '#10' RAZON_SOCIAL = :RAZON_SOCIAL, '#10' CALLE = :CALLE, '#10' ' + + ' POBLACION = :POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10' CODI' + + 'GO_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 = :NOTA' + + 'S, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FEC' + + 'HA_MODIFICACION, '#10' USUARIO = :USUARIO, '#10' LOGOTIPO = :LOGOT' + + 'IPO, '#10' REGISTRO_MERCANTIL = :REGISTRO_MERCANTIL, '#10' IVA = :' + + 'IVA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Empresas' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_DATOS_BANCO' + SQL = + 'INSERT'#10' INTO EMPRESAS_DATOS_BANCO'#10' (ID, ID_EMPRESA, NOMBRE, ' + + 'ENTIDAD, SUCURSAL, DC, CUENTA, '#10' SUFIJO_N19, SUFIJO_N58)'#10' V' + + 'ALUES'#10' (:ID, :ID_EMPRESA, :NOMBRE, :ENTIDAD, :SUCURSAL, :DC, ' + + #10' :CUENTA, :SUFIJO_N19, :SUFIJO_N58)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EmpresasDatosBanco' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_DATOS_BANCO' + SQL = + 'DELETE '#10' FROM'#10' EMPRESAS_DATOS_BANCO'#10' WHERE'#10' (ID = :OLD_I' + + 'D)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_EmpresasDatosBanco' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_DATOS_BANCO' + SQL = + 'UPDATE EMPRESAS_DATOS_BANCO'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,' + + #10' NOMBRE = :NOMBRE, '#10' ENTIDAD = :ENTIDAD, '#10' SUCURSAL = ' + + ':SUCURSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA, '#10' SUFIJO_N19' + + ' = :SUFIJO_N19, '#10' SUFIJO_N58 = :SUFIJO_N58'#10' WHERE'#10' (ID = ' + + ':OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_EmpresasDatosBanco' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Empresas' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Empresas' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert EmpresasDatosBanco' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Empresas' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Empresas' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update EmpresasDatosBanco' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete EmpresasDatosBanco' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'EmpresasDatosBanco' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Empresas' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Empresas' + FailureBehaviour = fbRaiseException + end> + Left = 30 + Top = 14 + end + object BINAdapter: TDABINAdapter + Left = 30 + Top = 82 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Empresas_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Empresas_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CIF' + Alignment = taLeftJustify + end + item + Name = 'Empresas_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + end + item + Name = 'Empresas_RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Raz'#243'n Social' + Alignment = taLeftJustify + end + item + Name = 'Empresas_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'Empresas_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'Empresas_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'Empresas_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'Empresas_TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono 1' + Alignment = taLeftJustify + end + item + Name = 'Empresas_TELEFONO_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono 2' + Alignment = taLeftJustify + end + item + Name = 'Empresas_MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil 1' + Alignment = taLeftJustify + end + item + Name = 'Empresas_MOVIL_2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'M'#243'vil 2' + Alignment = taLeftJustify + end + item + Name = 'Empresas_FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fax' + Alignment = taLeftJustify + end + item + Name = 'Empresas_EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail 1' + Alignment = taLeftJustify + end + item + Name = 'Empresas_EMAIL_2' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'E-mail 2' + Alignment = taLeftJustify + end + item + Name = 'Empresas_PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'P'#225'gina web' + Alignment = taLeftJustify + end + item + Name = 'Empresas_NOTAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Notas' + Alignment = taLeftJustify + end + item + Name = 'Empresas_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Empresas_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Empresas_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Empresas_LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DisplayWidth = 0 + DisplayLabel = 'Logotipo' + Alignment = taLeftJustify + end + item + Name = 'Empresas_REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Registro mercantil' + Alignment = taLeftJustify + end + item + Name = 'Empresas_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del banco' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Entidad' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sucursal' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DC' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cuenta' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo 19' + Alignment = taLeftJustify + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo 58' + Alignment = taLeftJustify + end> + Left = 126 + Top = 14 + end + object Diagrams: TDADiagrams + Left = 126 + Top = 82 + DiagramData = + ''#13#10' '#13#10' '#13#10''#13#10 + end + object bpEmpresas: TDABusinessProcessor + Schema = schEmpresas + InsertCommandName = 'Insert_Empresas' + DeleteCommandName = 'Delete_Empresas' + UpdateCommandName = 'Update_Empresas' + ReferencedDataset = 'Empresas' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 16 + end + object bpEmpresasDatosBanco: TDABusinessProcessor + Schema = schEmpresas + InsertCommandName = 'Insert_EmpresasDatosBanco' + DeleteCommandName = 'Delete_EmpresasDatosBanco' + UpdateCommandName = 'Update_EmpresasDatosBanco' + RefreshDatasetName = 'EmpresasDatosBanco_Refresh' + ReferencedDataset = 'EmpresasDatosBanco' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 80 + end +end diff --git a/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.pas b/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.pas new file mode 100644 index 00000000..78872856 --- /dev/null +++ b/Source/Modulos/Empresas/Servidor/srvEmpresas_Impl.pas @@ -0,0 +1,89 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDAInterfaces; + +type + { TsrvEmpresas } + TsrvEmpresas = class(TDARemoteService, IsrvEmpresas) + BINAdapter: TDABINAdapter; + Diagrams: TDADiagrams; + bpEmpresas: TDABusinessProcessor; + bpEmpresasDatosBanco: TDABusinessProcessor; + schEmpresas: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvEmpresas methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uRORemoteDataModule, + uDatabaseUtils, Dialogs, Variants, uROStreamSerializer, uROBinaryHelpers, + uSesionesUtils, schEmpresasClient_Intf, uUsersManager, + uRestriccionesUsuarioUtils; + +procedure Create_srvEmpresas(out anInstance : IUnknown); +begin + anInstance := TsrvEmpresas.Create(NIL); +end; + +{ srvEmpresas } +procedure TsrvEmpresas.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvEmpresas.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + + if (DataSet.Name <> nme_EmpresasDatosBanco) then + begin + { Aquí se asegura que el usuario sólo accede a las empresas a + las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schEmpresas, DataSet, fld_EmpresasID); + end; +end; + +procedure TsrvEmpresas.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvEmpresas.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +initialization + TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Empresas/Test/Empresas_Tests.bdsproj b/Source/Modulos/Empresas/Test/Empresas_Tests.bdsproj new file mode 100644 index 00000000..37154e7a --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Test/Empresas_Tests.dpr b/Source/Modulos/Empresas/Test/Empresas_Tests.dpr new file mode 100644 index 00000000..e43b0109 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Test/Empresas_Tests.drc b/Source/Modulos/Empresas/Test/Empresas_Tests.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Test/Empresas_Tests.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Test/Empresas_Tests.res b/Source/Modulos/Empresas/Test/Empresas_Tests.res new file mode 100644 index 00000000..346c5f0c Binary files /dev/null and b/Source/Modulos/Empresas/Test/Empresas_Tests.res differ diff --git a/Source/Modulos/Empresas/Test/uEmpresasController_Test.pas b/Source/Modulos/Empresas/Test/uEmpresasController_Test.pas new file mode 100644 index 00000000..50cf2686 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Test/uHostMainForm.dfm b/Source/Modulos/Empresas/Test/uHostMainForm.dfm new file mode 100644 index 00000000..1de986c4 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Test/uHostMainForm.pas b/Source/Modulos/Empresas/Test/uHostMainForm.pas new file mode 100644 index 00000000..50f4b46e --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Views/Empresas_view.bdsproj b/Source/Modulos/Empresas/Views/Empresas_view.bdsproj new file mode 100644 index 00000000..df17f8a0 --- /dev/null +++ b/Source/Modulos/Empresas/Views/Empresas_view.bdsproj @@ -0,0 +1,543 @@ + + + + + + + + + + + + Empresas_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/Empresas/Views/Empresas_view.dpk b/Source/Modulos/Empresas/Views/Empresas_view.dpk new file mode 100644 index 00000000..87476849 --- /dev/null +++ b/Source/Modulos/Empresas/Views/Empresas_view.dpk @@ -0,0 +1,84 @@ +package Empresas_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, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + tbx_d10, + tb2k_d10, + dsnap, + adortl, + dxLayoutControlD10, + dxComnD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + JvAppFrmD10R, + JvPageCompsD10R, + PNG_D10, + PngComponentsD10, + GUISDK_D10, + ccpack10, + cfpack_d10, + DataAbstract_D10, + Base, + GUIBase, + Empresas_model, + Empresas_controller, + JvCtrlsD10R, + JvJansD10R; + +contains + uEmpresasViewRegister in 'uEmpresasViewRegister.pas', + uEditorEmpresa in 'uEditorEmpresa.pas' {fEditorEmpresa: TForm}, + uViewEmpresa in 'uViewEmpresa.pas' {frViewEmpresa: TFrame}, + uViewDatosBancarios in 'uViewDatosBancarios.pas' {frViewDatosBancarios: TFrame}, + uEditorDatosBancariosEmpresa in 'uEditorDatosBancariosEmpresa.pas' {fEditorDatosBancariosEmpresa}; + +end. diff --git a/Source/Modulos/Empresas/Views/Empresas_view.drc b/Source/Modulos/Empresas/Views/Empresas_view.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Empresas/Views/Empresas_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Empresas/Views/Empresas_view.rc b/Source/Modulos/Empresas/Views/Empresas_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Empresas/Views/Empresas_view.res b/Source/Modulos/Empresas/Views/Empresas_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Empresas/Views/Empresas_view.res differ diff --git a/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.dfm b/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.dfm new file mode 100644 index 00000000..adc3d192 --- /dev/null +++ b/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.dfm @@ -0,0 +1,181 @@ +object fEditorDatosBancariosEmpresa: TfEditorDatosBancariosEmpresa + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Cambio de datos bancarios' + ClientHeight = 292 + ClientWidth = 433 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 433 + 292) + PixelsPerInch = 96 + TextHeight = 13 + object OKBtn: TButton + Left = 350 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Guardar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 350 + 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 = 176 + 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 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 + TabOrder = 1 + end + object eCodSucursal: TDBEdit + Left = 95 + Top = 90 + Width = 74 + Height = 21 + DataField = 'SUCURSAL' + DataSource = dsDatosBancarios + 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 + end + object GroupBox2: TGroupBox + Left = 8 + Top = 190 + Width = 329 + Height = 83 + Caption = 'Sufijos para normas CSB' + TabOrder = 3 + 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 dsDatosBancarios: TDADataSource + Left = 352 + Top = 72 + end +end diff --git a/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.pas b/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.pas new file mode 100644 index 00000000..c31fb01f --- /dev/null +++ b/Source/Modulos/Empresas/Views/uEditorDatosBancariosEmpresa.pas @@ -0,0 +1,97 @@ +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; + +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; + 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/Modulos/Empresas/Views/uEditorEmpresa.dfm b/Source/Modulos/Empresas/Views/uEditorEmpresa.dfm new file mode 100644 index 00000000..4bd2a6a0 --- /dev/null +++ b/Source/Modulos/Empresas/Views/uEditorEmpresa.dfm @@ -0,0 +1,336 @@ +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 = 660 + inherited Image1: TImage + Left = 647 + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 674 + ExplicitWidth = 660 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 324 + 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 = 674 + Height = 459 + ExplicitWidth = 660 + ExplicitHeight = 451 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 652 + ExplicitHeight = 423 + inline frViewEmpresa1: TfrViewEmpresa + Left = 0 + Top = 0 + Width = 666 + Height = 431 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 652 + ExplicitHeight = 423 + inherited dxLayoutControl1: TdxLayoutControl + Width = 666 + Height = 431 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 652 + ExplicitHeight = 423 + inherited PngSpeedButton1: TPngSpeedButton + Left = 621 + Top = 295 + ExplicitLeft = 621 + ExplicitTop = 295 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 621 + Top = 267 + ExplicitLeft = 621 + ExplicitTop = 267 + end + inherited eCalle: TcxDBTextEdit + Top = 189 + ExplicitTop = 189 + ExplicitWidth = 84 + Width = 84 + end + inherited eProvincia: TcxDBTextEdit + Top = 243 + ExplicitTop = 243 + ExplicitWidth = 60 + Width = 60 + end + inherited ePoblacion: TcxDBTextEdit + Top = 216 + ExplicitTop = 216 + ExplicitWidth = 100 + Width = 100 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 289 + Top = 216 + ExplicitLeft = 289 + ExplicitTop = 216 + end + inherited ePaginaWeb: TcxDBTextEdit + Left = 477 + Top = 216 + ExplicitLeft = 477 + ExplicitTop = 216 + ExplicitWidth = 165 + Width = 165 + end + inherited eMailParticular: TcxDBTextEdit + Left = 477 + Top = 189 + ExplicitLeft = 477 + ExplicitTop = 189 + ExplicitWidth = 165 + Width = 165 + end + inherited eMailTrabajo: TcxDBTextEdit + Left = 477 + Top = 162 + ExplicitLeft = 477 + ExplicitTop = 162 + ExplicitWidth = 129 + Width = 129 + end + inherited cxDBMemo1: TcxDBMemo + Top = 294 + ExplicitTop = 294 + ExplicitWidth = 107 + ExplicitHeight = 234 + Height = 234 + Width = 107 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 477 + Top = 57 + ExplicitLeft = 477 + ExplicitTop = 57 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 477 + Top = 30 + ExplicitLeft = 477 + ExplicitTop = 30 + ExplicitWidth = 127 + Width = 127 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 477 + Top = 84 + ExplicitLeft = 477 + ExplicitTop = 84 + ExplicitWidth = 155 + Width = 155 + end + inherited eFax: TcxDBTextEdit + Left = 477 + Top = 111 + ExplicitLeft = 477 + ExplicitTop = 111 + ExplicitWidth = 121 + Width = 121 + end + inherited eNombre: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 108 + Width = 108 + end + inherited eNIFCIF: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 108 + Width = 108 + end + inherited memRegistroMercantil: TcxDBMemo + Top = 84 + ExplicitTop = 84 + ExplicitWidth = 76 + Width = 76 + end + inherited cxDBSpinEdit1: TcxDBSpinEdit + Top = 138 + ExplicitTop = 138 + end + inherited cxDBImage1: TcxDBImage + Left = 382 + Top = 267 + ExplicitLeft = 382 + ExplicitTop = 267 + ExplicitWidth = 140 + ExplicitHeight = 100 + Height = 100 + Width = 140 + end + end + end + end + object TabSheet1: TTabSheet + Caption = 'Datos bancarios' + ImageIndex = 1 + ExplicitWidth = 652 + ExplicitHeight = 423 + inline frViewDatosBancarios1: TfrViewDatosBancarios + Left = 0 + Top = 0 + Width = 666 + Height = 431 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 652 + ExplicitHeight = 423 + inherited cxGrid: TcxGrid + Width = 666 + Height = 406 + ExplicitWidth = 652 + ExplicitHeight = 398 + end + inherited ToolBar1: TToolBar + Width = 666 + ExplicitWidth = 666 + 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 = 535 + Width = 674 + Panels = < + item + Width = 200 + end> + ExplicitTop = 527 + ExplicitWidth = 660 + 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/Modulos/Empresas/Views/uEditorEmpresa.pas b/Source/Modulos/Empresas/Views/uEditorEmpresa.pas new file mode 100644 index 00000000..332cafac --- /dev/null +++ b/Source/Modulos/Empresas/Views/uEditorEmpresa.pas @@ -0,0 +1,183 @@ +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; + +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, uDataModuleBase; + +{ +******************************* 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; + FController.Guardar(FEmpresa); + 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; +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 ningún 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/Modulos/Empresas/Views/uEmpresasViewRegister.pas b/Source/Modulos/Empresas/Views/uEmpresasViewRegister.pas new file mode 100644 index 00000000..58386775 --- /dev/null +++ b/Source/Modulos/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/Modulos/Empresas/Views/uViewDatosBancarios.dfm b/Source/Modulos/Empresas/Views/uViewDatosBancarios.dfm new file mode 100644 index 00000000..9ffd2041 --- /dev/null +++ b/Source/Modulos/Empresas/Views/uViewDatosBancarios.dfm @@ -0,0 +1,52 @@ +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' + Width = 55 + end + object cxGridViewSUFIJO_N58: TcxGridDBColumn + DataBinding.FieldName = 'SUFIJO_N58' + Width = 57 + end + end + end + inherited ToolBar1: TToolBar + Width = 583 + ExplicitWidth = 583 + end +end diff --git a/Source/Modulos/Empresas/Views/uViewDatosBancarios.pas b/Source/Modulos/Empresas/Views/uViewDatosBancarios.pas new file mode 100644 index 00000000..bcc0aca5 --- /dev/null +++ b/Source/Modulos/Empresas/Views/uViewDatosBancarios.pas @@ -0,0 +1,67 @@ +unit uViewDatosBancarios; + +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; + +type + TfrViewDatosBancarios = class(TfrViewDetallesGenerico) + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewENTIDAD: TcxGridDBColumn; + cxGridViewSUCURSAL: TcxGridDBColumn; + cxGridViewDC: TcxGridDBColumn; + cxGridViewCUENTA: TcxGridDBColumn; + cxGridViewSUFIJO_N19: TcxGridDBColumn; + cxGridViewSUFIJO_N58: TcxGridDBColumn; + procedure cxGridViewDblClick(Sender: TObject); + protected + procedure AnadirInterno; override; + procedure ModificarInterno; override; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDatosBancariosEmpresaController, uBizEmpresasDatosBancarios, + uDataModuleEmpresas; + +procedure TfrViewDatosBancarios.AnadirInterno; +begin + inherited; + try + with TDatosBancariosEmpresaController.Create do + Ver((dsDetalles.DataTable) as IBizEmpresasDatosBancarios); + finally + if (dsDetalles.DataTable.State in dsEditModes) then + dsDetalles.DataTable.Post; + end; +end; + +procedure TfrViewDatosBancarios.cxGridViewDblClick(Sender: TObject); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewDatosBancarios.ModificarInterno; +begin + inherited; + with TDatosBancariosEmpresaController.Create do + Ver((dsDetalles.DataTable) as IBizEmpresasDatosBancarios); +end; + +end. + + + diff --git a/Source/Modulos/Empresas/Views/uViewEmpresa.dfm b/Source/Modulos/Empresas/Views/uViewEmpresa.dfm new file mode 100644 index 00000000..a2b17571 --- /dev/null +++ b/Source/Modulos/Empresas/Views/uViewEmpresa.dfm @@ -0,0 +1,595 @@ +inherited frViewEmpresa: TfrViewEmpresa + Width = 590 + Height = 385 + ExplicitWidth = 590 + ExplicitHeight = 385 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 590 + Height = 385 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object PngSpeedButton1: TPngSpeedButton + Left = 545 + Top = 305 + Width = 23 + Height = 22 + Action = actEliminar + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object PngSpeedButton2: TPngSpeedButton + Left = 545 + Top = 277 + Width = 23 + Height = 22 + Action = actAnadir + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eCalle: TcxDBTextEdit + Left = 117 + Top = 193 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + 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 = 4 + Width = 84 + end + object eProvincia: TcxDBTextEdit + Left = 117 + Top = 247 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + 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 = 7 + Width = 60 + end + object ePoblacion: TcxDBTextEdit + Left = 117 + Top = 220 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + 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 = 5 + Width = 100 + end + object eCodigoPostal: TcxDBTextEdit + Left = 246 + Top = 220 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + 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 = 6 + Width = 65 + end + object ePaginaWeb: TcxDBTextEdit + Left = 436 + Top = 220 + DataBinding.DataField = 'PAGINA_WEB' + DataBinding.DataSource = DADataSource + 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 = 15 + Width = 165 + end + object eMailParticular: TcxDBTextEdit + Left = 436 + Top = 193 + DataBinding.DataField = 'EMAIL_2' + DataBinding.DataSource = DADataSource + 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 = 14 + Width = 165 + end + object eMailTrabajo: TcxDBTextEdit + Left = 436 + Top = 166 + DataBinding.DataField = 'EMAIL_1' + DataBinding.DataSource = DADataSource + 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 = 13 + Width = 129 + end + object cxDBMemo1: TcxDBMemo + Left = 22 + Top = 304 + DataBinding.DataField = 'NOTAS' + DataBinding.DataSource = DADataSource + 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 = 8 + Height = 234 + Width = 107 + end + object eTlfParticular: TcxDBTextEdit + Left = 436 + Top = 55 + DataBinding.DataField = 'TELEFONO_2' + DataBinding.DataSource = DADataSource + 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 = 10 + Width = 91 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 436 + Top = 28 + DataBinding.DataField = 'TELEFONO_1' + DataBinding.DataSource = DADataSource + 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 = 9 + Width = 127 + end + object eTlfMovil: TcxDBTextEdit + Left = 436 + Top = 82 + DataBinding.DataField = 'MOVIL_1' + DataBinding.DataSource = DADataSource + 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 = 11 + Width = 155 + end + object eFax: TcxDBTextEdit + Left = 436 + Top = 109 + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + 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 = 12 + Width = 121 + end + object eNombre: TcxDBTextEdit + Left = 117 + 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 + 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 = 108 + end + object eNIFCIF: TcxDBTextEdit + Left = 117 + 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 + 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 = 108 + end + object memRegistroMercantil: TcxDBMemo + Left = 117 + 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 + 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 = 48 + Width = 76 + end + object cxDBSpinEdit1: TcxDBSpinEdit + Left = 117 + Top = 136 + DataBinding.DataField = 'IVA' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + 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 = 60 + end + object cxDBImage1: TcxDBImage + Left = 341 + Top = 277 + DataBinding.DataField = 'LOGOTIPO' + DataBinding.DataSource = DADataSource + Properties.Stretch = True + 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 = 16 + Height = 100 + Width = 140 + 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 + AlignVert = avClient + 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 + AutoAligns = [aaVertical] + Caption = 'IVA por defecto:' + Control = cxDBSpinEdit1 + 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 + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = ePoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'C'#243'd. postal:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Provincia:' + Control = eProvincia + ControlOptions.ShowBorder = False + 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' + 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/Modulos/Empresas/Views/uViewEmpresa.pas b/Source/Modulos/Empresas/Views/uViewEmpresa.pas new file mode 100644 index 00000000..154d4eba --- /dev/null +++ b/Source/Modulos/Empresas/Views/uViewEmpresa.pas @@ -0,0 +1,179 @@ +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; + +type + IViewEmpresa = interface(IViewBase) + ['{876DCEBD-9E92-491A-84CE-498B1A84B525}'] + function GetEmpresa: IBizEmpresa; + procedure SetEmpresa(const Value: IBizEmpresa); + property Empresa: IBizEmpresa read GetEmpresa write SetEmpresa; + 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; + dxLayoutControl1Item2: TdxLayoutItem; + eProvincia: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + ePoblacion: 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; + dxLayoutControl1Group8: TdxLayoutGroup; + cxDBSpinEdit1: TcxDBSpinEdit; + dxLayoutControl1Item16: TdxLayoutItem; + ActionList1: TActionList; + actAnadir: TAction; + actEliminar: TAction; + SmallImages: TPngImageList; + OpenDialog1: TOpenDialog; + cxDBImage1: TcxDBImage; + dxLayoutControl1Item17: TdxLayoutItem; + PngSpeedButton1: TPngSpeedButton; + dxLayoutControl1Item19: TdxLayoutItem; + PngSpeedButton2: TPngSpeedButton; + dxLayoutControl1Item20: TdxLayoutItem; + dxLayoutControl1Group12: TdxLayoutGroup; + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + private + FEmpresa: IBizEmpresa; + protected + function GetEmpresa: IBizEmpresa; + procedure SetEmpresa(const Value: IBizEmpresa); + public + constructor Create(AOwner : TComponent); override; + end; + +implementation +{$R *.dfm} + +uses uROClasses, uROTypes; + +{ 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; + +constructor TfrViewEmpresa.Create(AOwner : TComponent); +begin + inherited; +end; + +function TfrViewEmpresa.GetEmpresa: IBizEmpresa; +begin + Result := FEmpresa; +end; + +procedure TfrViewEmpresa.SetEmpresa(const Value: IBizEmpresa); +begin + FEmpresa := Value; + if Assigned(FEmpresa) then + DADataSource.DataTable := FEmpresa.DataTable + else + DADataSource.DataTable := NIL; +end; + +initialization + RegisterClass(TfrViewEmpresa); + +finalization + UnRegisterClass(TfrViewEmpresa); + +end. + diff --git a/Source/Modulos/Facturas de cliente/Controller/DataAbstract_D10.drc b/Source/Modulos/Facturas de cliente/Controller/DataAbstract_D10.drc new file mode 100644 index 00000000..4678b4d6 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/DataAbstract_D10.drc @@ -0,0 +1,19 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x47", "\x00", "\x65", "\x00", "\x73", "\x00", "\x74", "\x00", /* 0000: G.e.s.t. */ + "\x69", "\x00", "\xf3", "\x00", "\x6e", "\x00", "\x20", "\x00", /* 0008: i...n. . */ + "\x64", "\x00", "\x65", "\x00", "\x20", "\x00", "\x75", "\x00", /* 0010: d.e. .u. */ + "\x73", "\x00", "\x75", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0018: s.u.a.r. */ + "\x69", "\x00", "\x6f", "\x00", "\x73", "\x00", "\x00", "\x00" /* 0020: i.o.s... */ +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 00000000..34284927 --- /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.dpk b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk new file mode 100644 index 00000000..9a0f1765 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk @@ -0,0 +1,62 @@ +package FacturasCliente_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + GUIBase, + ControllerBase, + Usuarios, + Contactos_controller, + FacturasCliente_model, + FacturasCliente_data, + Articulos_controller, + PedidosCliente_model, + PedidosCliente_controller, + AlbaranesCliente_model, + AlbaranesCliente_controller, + RecibosCliente_controller, + FormasPago_controller; + +contains + uFacturasClienteController in 'uFacturasClienteController.pas', + uDetallesFacturaClienteController in 'uDetallesFacturaClienteController.pas', + uIEditorFacturasCliente in 'View\uIEditorFacturasCliente.pas', + uIEditorFacturaCliente in 'View\uIEditorFacturaCliente.pas', + uIEditorSituacionFacturaCliente in 'View\uIEditorSituacionFacturaCliente.pas', + uFacturasClienteReportController in 'uFacturasClienteReportController.pas', + uIEditorFacturasClientePreview in 'View\uIEditorFacturasClientePreview.pas', + uIEditorElegirArticulosFacturasCliente in 'View\uIEditorElegirArticulosFacturasCliente.pas', + uArticulosFacturaClienteController in 'uArticulosFacturaClienteController.pas', + uIEditorElegirFacturasCliente in 'View\uIEditorElegirFacturasCliente.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.pas new file mode 100644 index 00000000..f77a3fe3 --- /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.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.pas new file mode 100644 index 00000000..a58bd987 --- /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.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.pas new file mode 100644 index 00000000..ca15a134 --- /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.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.pas new file mode 100644 index 00000000..7b7fd02b --- /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.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas new file mode 100644 index 00000000..6b7abc2a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas @@ -0,0 +1,19 @@ +unit uIEditorFacturasClientePreview; + +interface + +uses + uEditorPreview, uBizFacturasCliente, uFacturasClienteReportController; + +type + IEditorFacturasClientePreview = interface(IEditorPreview) + ['{0B893ED1-261A-4358-814E-18D7FD768E14}'] +{ function PreviewGetController : IFacturasClienteReportController; + procedure PreviewSetController (const Value : IFacturasClienteReportController); + property PreviewController : IFacturasClienteReportController read PreviewGetController write PreviewSetController;} + end; + + +implementation + +end. 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 00000000..909c38e3 --- /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.pas b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas new file mode 100644 index 00000000..a8cd9fb4 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas @@ -0,0 +1,47 @@ +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, uIEditorElegirArticulosFacturasCliente, uIEditorElegirArticulos; + +function TArticulosFacturaClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosFacturasCliente; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosFacturaCliente', IEditorElegirArticulosFacturasCliente, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. 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 00000000..893c9b3c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas @@ -0,0 +1,197 @@ +unit uDetallesFacturaClienteController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesFacturaCliente, uIDataModuleFacturasCliente, + uBizContactos, uBizArticulos; + +type + IDetallesFacturaClienteController = interface(IControllerDetallesArticulos) + ['{D3942A48-C55B-4A98-AC5B-B5E652ED393E}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaCliente; AReferencia: String; AFecha: String); + end; + + TDetallesFacturaClienteController = class(TControllerDetallesArticulos, IDetallesFacturaClienteController) + private + FDataModule : IDataModuleFacturasCliente; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); 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, uControllerDetallesDTO, uDataModuleFacturasCliente, uArticulosFacturaClienteController, + uControllerDetallesBase, Dialogs, SysUtils; + +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); + ShowMessage('Se han actualizado los descuentos para el cliente seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + try + AArticulos := (FArticulosController as IArticulosFacturaClienteController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a esta factura de cliente', True); + Add(ADetalles, AArticulos); + 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; + +{procedure TDetallesFacturaClienteController.AsignarID( + ADetalles: IBizDetallesFacturaCliente; IDCabecera: Integer; + EsNuevo: Boolean); +begin + with ADetalles do + begin + DataTable.DisableControls; + try + if not DataTable.Active then + DataTable.Active := True; + +// AuxPosicion := POSICION; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + +{ if EsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FACTURA := IDCabecera; + Post + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if ID < 0 then + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FACTURA := IDCabecera; + Post + end; + DataTable.Next + end; + end; + finally + DataTable.EnableControls; + end; + end; +end;} + +constructor TDetallesFacturaClienteController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasCliente.Create(Nil); +end; + +destructor TDetallesFacturaClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesFacturaClienteController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +end; + +procedure TDetallesFacturaClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; +end; + +end. 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 00000000..999a0841 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -0,0 +1,913 @@ +unit uFacturasClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasCliente, + uClientesController, uDetallesFacturaClienteController, uBizAlbaranesCliente, + uBizFacturasCliente; + +type + IFacturasClienteController = interface(IObservador) + ['{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; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente); + function Nuevo : 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): 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); + procedure Print(AFactura : IBizFacturaCliente); + + function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente; + function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente; + end; + + TFacturasClienteController = class(TObservador, IFacturasClienteController) + private + FDataModule : IDataModuleFacturasCliente; + FClienteController : IClientesController; + FDetallesController : IDetallesFacturaClienteController; + + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + + function GetDetallesController: IDetallesFacturaClienteController; + procedure SetDetallesController(const Value: IDetallesFacturaClienteController); + + procedure AsignarID(AFactura: IBizFacturaCliente; const IDNuevo : Integer); + 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaCliente): 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; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + function Nuevo : IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente); + function Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; + function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; + procedure RecuperarCliente(AFactura : IBizFacturaCliente); + procedure Preview(AFactura : IBizFacturaCliente); + procedure Print(AFactura : IBizFacturaCliente); + + function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente; + function ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente) : IBizFacturaCliente; + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf, + uBizContactos, uIEditorFacturasCliente, uIEditorFacturaCliente, + uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, + uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController, + uBizDetallesAlbaranCliente, uFacturasClienteReportController, + uBizPedidosCliente, uPedidosClienteController, + DateUtils, Forms, uBizDetallesPedidoCliente, Dialogs, + uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente, + uRecibosClienteController, uBizRecibosCliente; + + +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 + 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; + 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 := 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 + 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; + 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 := 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; +begin + Result := False; + + // ATENCIÓN!!! 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 + // Busco si hay alguna factura ya hecha de ese cliente + AFacturaActual := NIL; + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasClienteID_CLIENTE, AListaAlbaranes.ID_CLIENTE, []) then + AFacturaActual := AFacturas + else begin + // No hay factura de ese cliente. Creo una nueva + Anadir(AFacturas); + AAlbaranesController.RecuperarCliente(AListaAlbaranes); + AFacturas.Cliente := AListaAlbaranes.Cliente; + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le añado los conceptos del albarán + AFacturaActual.Detalles.DataTable.Last; + // Añado el título + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Añado el contenido del albarán + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarán'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; + + // Añado el resumen + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; + Post; + end; + + // Añado una línea 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 albarán + 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; + +procedure TFacturasClienteController.AsignarID(AFactura: IBizFacturaCliente; const IDNuevo: Integer); +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if not Assigned(AFactura.Detalles) then + raise Exception.Create ('Detalles de factura no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(AFactura.Detalles, IDNuevo, AFactura.EsNuevo); + + if AFactura.EsNuevo then + begin + AFactura.Edit; + AFactura.ID := IDNuevo; + AFactura.Post; + 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; +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_FacturasClienteID_AGENTE + ' = ' + IntToStr(IdAgente)); + CloseBraket; + + //Todas aquellas que no esten asociadas a ninguna comisión o asociadas a la comisión, + //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_FacturasClienteID_COMISION_LIQUIDADA + ' IS NULL '); + CloseBraket; + //Quitamos aquellas que ya están asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasClienteID + ' 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_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; +// showmessage(Result.DataTable.Where.Clause); +end; + +function TFacturasClienteController.BuscarTodos: IBizFacturaCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TFacturasClienteController.Create; +begin + 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; + +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + REFERENCIA := ''; //Para que se asigne una nueva + FECHA_FACTURA := DateOf(Now); + ID_COMISION_LIQUIDADA := 0; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TFacturasClienteController.ValidarFactura(AFactura: IBizFacturaCliente): Boolean; +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_CLIENTE < 0) or (AFactura.ID_CLIENTE = 0) then + // No comprobar el objeto Cliente por que puede fallar la validación + // cuando se generan facturas automáticamente. +{ (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'); + + if (AFactura.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('La factura debe tener al menos un concepto en su contenido'); + + { Esta validación puede saltar cuando se generan facturas automáticamente + 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');} + + //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 "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + AFactura.Edit; + try + AFactura.USUARIO := dmUsuarios.LoginInfo.Usuario; + + 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; + ShowHourglassCursor; + try + RecuperarCliente(AFactura); + CreateEditor('EditorFacturaCliente', IEditorFacturaCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Factura := AFactura; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowModal; +end; + +procedure TFacturasClienteController.VerTodos(AFacturas: IBizFacturaCliente); +var + AEditor : IEditorFacturasCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorFacturasCliente', IEditorFacturasCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Facturas := AFacturas; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +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); + try + with AEditor do + begin + Controller := Self; + Facturas := AFacturas; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := FacturasClienteSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TFacturasClienteController.Eliminar(AFactura: IBizFacturaCliente): Boolean; +begin + Result := 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; + + AFactura.Delete; + //Los recibos al tener un on delete cascade se eliminarán automáticamente + AFactura.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + 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 + AFactura.Edit; + try + AFactura.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AFactura.Post; + end; + 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); + CopyDataTable(AFacturasCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TFacturasClienteController.FiltrarEmpresa(AFactura: IBizFacturaCliente); +begin + if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_FacturasClienteID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + 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; +var + IDNuevo : Integer; +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; + try + if (AFactura.EsNuevo) then + IDNuevo := FDataModule.GetNextID(AFactura.DataTable.LogicalName) + else + IDNuevo := AFactura.ID; + + AsignarID(AFactura, IDNuevo); + AFactura.DataTable.ApplyUpdates; + + //Se generan los recibos automáticamente a partir de la forma de pago + GenerarRecibos(AFactura); + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFacturasClienteController.Nuevo: IBizFacturaCliente; +var + AFactura : IBizFacturaCliente; +begin + AFactura := FDataModule.NewItem; + FiltrarEmpresa(AFactura); + AFactura.DataTable.Active := True; + AFactura.Insert; + Result := AFactura; +end; + +procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente); +var + AReportController : IFacturasClienteReportController; +begin + AReportController := TFacturasClienteReportController.Create; + try + AReportController.Preview(AFactura.ID); + finally + AReportController := NIL; + end; +end; + +procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente); +var + AReportController : IFacturasClienteReportController; +begin + AReportController := TFacturasClienteReportController.Create; + try + AReportController.Print(AFactura.ID); + finally + AReportController := NIL; + end; +end; + +function TFacturasClienteController.GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; +begin + ShowHourglassCursor; + try + Result := Duplicar(AFactura); + //Añade 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; + i: Integer; +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 + //estarán pendientes (solo permitiremos modificar y eliminar facturas pendientes, + //parcialmente pagadas o pagadas no + ARecibos := ARecibosClienteController.BuscarTodosFactura(AFactura.ID); + ARecibosClienteController.EliminarTodo(ARecibos); + + //Vamos a generar todos los recibos necesarios para la factura + With AFormaPago.Plazos.DataTable do + begin + i := 1; + First; + while not eof do + begin + ARecibos := ARecibosClienteController.Nuevo; + ARecibos.Edit; + ARecibos.ID_FACTURA := AFactura.ID; + ARecibos.REFERENCIA := AFactura.REFERENCIA + ' - ' + IntToStr(i); + ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL * (AFormaPago.Plazos.PORCENTAJE / 100); + ARecibosClienteController.Guardar(ARecibos); + Inc(i); + Next; + 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.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas new file mode 100644 index 00000000..77dbb408 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas @@ -0,0 +1,107 @@ +unit uFacturasClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasClienteReport, + uClientesController, uDetallesFacturaClienteController, + uBizFacturasCliente; + +type + IFacturasClienteReportController = interface + ['{A0F41767-4FF6-4BAE-9FC9-894DD721D756}'] + procedure Preview(const AFacturaID : integer); + procedure Print(const AFacturaID : integer); + end; + + TFacturasClienteReportController = class(TInterfacedObject, IFacturasClienteReportController) + private + FDataModule : IDataModuleFacturasClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; + out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AFacturaID : integer); + procedure Print(const AFacturaID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorFacturasClientePreview, + uEditorPreview, uDataModuleFacturasCliente, uEditorBase, cxControls; + +{ TFacturasClienteReportController } + +constructor TFacturasClienteReportController.Create; +begin + 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; + +procedure TFacturasClienteReportController.Preview( + const AFacturaID : integer); +var + AStream: Binary; + AEditor : IEditorFacturasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TFacturasClienteReportController.Print( + const AFacturaID : integer); +var + AStream: Binary; + AEditor : IEditorFacturasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..5c32ca50 --- /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.dpk b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk new file mode 100644 index 00000000..90c8e7dc --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk @@ -0,0 +1,40 @@ +package FacturasCliente_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, + dbrtl, + dsnap, + vcldb, + vcl, + adortl, + Contactos_model, + FacturasCliente_model; + +contains + uDataModuleFacturasCliente in 'uDataModuleFacturasCliente.pas' {DataModuleFacturasCliente: TDAClientDataModule}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm new file mode 100644 index 00000000..8cabf7d8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm @@ -0,0 +1,900 @@ +object DataModuleFacturasCliente: TDataModuleFacturasCliente + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvFacturasCliente' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object tbl_FacturasCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FacturasCliente_ID_FORMA_PAGO' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Con R.E.?' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_REFERENCIA_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de vencimiento' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasCliente' + IndexDefs = <> + Left = 208 + Top = 96 + end + object ds_FacturasCliente: TDADataSource + DataTable = tbl_FacturasCliente + Left = 208 + Top = 40 + end + object tbl_FacturasCliente_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FacturasCliente_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_FacturasCliente + MasterFields = 'ID' + DetailFields = 'ID_FACTURA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasCliente_Detalles' + IndexDefs = <> + Left = 368 + Top = 96 + end + object ds_FacturasCliente_Detalles: TDADataSource + DataTable = tbl_FacturasCliente_Detalles + Left = 368 + Top = 40 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + 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 00000000..e023d8b7 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas @@ -0,0 +1,152 @@ +unit uDataModuleFacturasCliente; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + + uIDataModuleFacturasCliente, uBizFacturasCliente, uBizDetallesFacturaCliente, + uDADesigntimeCall, uIDataModuleFacturasClienteReport; + +type + TDataModuleFacturasCliente = class(TDAClientDataModule, IDataModuleFacturasCliente, IDataModuleFacturasClienteReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + tbl_FacturasCliente: TDACDSDataTable; + ds_FacturasCliente: TDADataSource; + tbl_FacturasCliente_Detalles: TDACDSDataTable; + ds_FacturasCliente_Detalles: TDADataSource; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesFacturaCliente; + public + function GetItems : IBizFacturaCliente; + function GetItem(const ID : Integer) : IBizFacturaCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizFacturaCliente; + + // Report + function GetReport(const AFacturaID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schFacturasClienteClient_Intf, uBizContactos; + +{ TdmPresupuestos } + +procedure TDataModuleFacturasCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFacturasCliente.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_FacturasCliente then + aGeneratorName := 'GEN_FACTURAS_CLIENTE_ID'; + + if DataSetName = nme_FacturasCliente_Detalles then + aGeneratorName := 'GEN_FACTURA_CLIENTE_DETALLES_ID'; + + Result := (RORemoteService as IsrvFacturasCliente).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleFacturasCliente.GetReport( + const AFacturaID: Integer): Binary; +begin + Result := (RORemoteService as IsrvFacturasCliente).GenerateReport(AFacturaID) +end; + +function TDataModuleFacturasCliente.NewItem: IBizFacturaCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleFacturasCliente._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleFacturasCliente._GetDetalles: IBizDetallesFacturaCliente; +var + ADetalles : TDACDSDataTable; +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; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasClienteID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasCliente.GetItems: IBizFacturaCliente; +var + AFactura : TDACDSDataTable; +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 00000000..e3dee7bf --- /dev/null +++ b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.bdsgroup @@ -0,0 +1,32 @@ + + + + + + + + + + + ..\..\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 + 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 + + + + diff --git a/Source/Modulos/Facturas de cliente/FacturasCliente_Group.config b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file 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 00000000..cd4cd675 --- /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 GetItems: IBizFacturaCliente; + function GetItem(const ID : Integer) : IBizFacturaCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizFacturaCliente; + end; + +implementation + +end. 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 00000000..e555e18e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleFacturasClienteReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleFacturasClienteReport = interface + ['{F498AC70-AA38-4C06-B301-85A4AC0B210B}'] + function GetReport(const AFacturaID: Integer): 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 00000000..96091bce --- /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.dpk b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk new file mode 100644 index 00000000..bd92cbaf --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk @@ -0,0 +1,59 @@ +package FacturasCliente_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} +{%TogetherDiagram 'ModelSupport_FacturasCliente_model\default.txaPackage'} + +requires + rtl, + dbrtl, + vcl, + DataAbstract_D10, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Base, + Empresas_controller, + Usuarios, + Contactos_model, + TiposIVA_model, + TiposIVA_controller; + +contains + uBizFacturasCliente in 'uBizFacturasCliente.pas', + uIDataModuleFacturasCliente in 'Data\uIDataModuleFacturasCliente.pas', + uBizDetallesFacturaCliente in 'uBizDetallesFacturaCliente.pas', + uIDataModuleFacturasClienteReport in 'Data\uIDataModuleFacturasClienteReport.pas', + schFacturasClienteClient_Intf in 'schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in 'schFacturasClienteServer_Intf.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..c8f28340 --- /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 00000000..c8f28340 --- /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 00000000..e69de29b 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 00000000..79df600f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -0,0 +1,1980 @@ +unit schFacturasClienteClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_DarReferencia = '{19462EB6-165A-476C-9823-5B2B47A082F8}'; + RID_FacturasCliente = '{8DDD5076-A7FE-4649-BD84-36A382C2DB9F}'; + RID_FacturasCliente_Detalles = '{C3991952-23C1-47BE-9530-07D295DBFF68}'; + RID_FacturasCliente_Detalles_Refresh = '{B6449FD9-7ECA-4803-88B5-43887E1AE8F9}'; + RID_FacturasCliente_Refresh = '{88BDA112-E109-4894-A64B-83C094E54A14}'; + + { Data table names } + nme_DarReferencia = 'DarReferencia'; + nme_FacturasCliente = 'FacturasCliente'; + nme_FacturasCliente_Detalles = 'FacturasCliente_Detalles'; + nme_FacturasCliente_Detalles_Refresh = 'FacturasCliente_Detalles_Refresh'; + nme_FacturasCliente_Refresh = 'FacturasCliente_Refresh'; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { FacturasCliente fields } + fld_FacturasClienteID = 'ID'; + fld_FacturasClienteID_EMPRESA = 'ID_EMPRESA'; + fld_FacturasClienteREFERENCIA = 'REFERENCIA'; + fld_FacturasClienteTIPO = 'TIPO'; + fld_FacturasClienteFECHA_FACTURA = 'FECHA_FACTURA'; + 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_FacturasClienteCALLE = 'CALLE'; + fld_FacturasClientePOBLACION = 'POBLACION'; + fld_FacturasClientePROVINCIA = 'PROVINCIA'; + fld_FacturasClienteCODIGO_POSTAL = 'CODIGO_POSTAL'; + 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_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_FacturasClienteREFERENCIA_COMISION = 'REFERENCIA_COMISION'; + fld_FacturasClienteID_AGENTE = 'ID_AGENTE'; + fld_FacturasClienteFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + + { FacturasCliente field indexes } + idx_FacturasClienteID = 0; + idx_FacturasClienteID_EMPRESA = 1; + idx_FacturasClienteREFERENCIA = 2; + idx_FacturasClienteTIPO = 3; + idx_FacturasClienteFECHA_FACTURA = 4; + idx_FacturasClienteSITUACION = 5; + idx_FacturasClienteBASE_IMPONIBLE = 6; + idx_FacturasClienteDESCUENTO = 7; + idx_FacturasClienteIMPORTE_DESCUENTO = 8; + idx_FacturasClienteIVA = 9; + idx_FacturasClienteIMPORTE_IVA = 10; + idx_FacturasClienteRE = 11; + idx_FacturasClienteIMPORTE_RE = 12; + idx_FacturasClienteIMPORTE_TOTAL = 13; + idx_FacturasClienteOBSERVACIONES = 14; + idx_FacturasClienteID_CLIENTE = 15; + idx_FacturasClienteNIF_CIF = 16; + idx_FacturasClienteNOMBRE = 17; + idx_FacturasClienteCALLE = 18; + idx_FacturasClientePOBLACION = 19; + idx_FacturasClientePROVINCIA = 20; + idx_FacturasClienteCODIGO_POSTAL = 21; + idx_FacturasClienteFECHA_ALTA = 22; + idx_FacturasClienteFECHA_MODIFICACION = 23; + idx_FacturasClienteUSUARIO = 24; + idx_FacturasClienteID_FORMA_PAGO = 25; + idx_FacturasClienteRECARGO_EQUIVALENCIA = 26; + idx_FacturasClienteID_TIPO_IVA = 27; + idx_FacturasClienteIMPORTE_NETO = 28; + idx_FacturasClienteIMPORTE_PORTE = 29; + idx_FacturasClienteID_COMISION_LIQUIDADA = 30; + idx_FacturasClienteREFERENCIA_COMISION = 31; + idx_FacturasClienteID_AGENTE = 32; + idx_FacturasClienteFECHA_VENCIMIENTO = 33; + + { 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_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_FacturasCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasCliente_DetallesVISIBLE = 'VISIBLE'; + 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_DetallesIMPORTE_UNIDAD = 6; + idx_FacturasCliente_DetallesDESCUENTO = 7; + idx_FacturasCliente_DetallesIMPORTE_TOTAL = 8; + idx_FacturasCliente_DetallesID_ARTICULO = 9; + idx_FacturasCliente_DetallesVISIBLE = 10; + idx_FacturasCliente_DetallesIMPORTE_PORTE = 11; + idx_FacturasCliente_DetallesREFERENCIA = 12; + idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR = 13; + + { FacturasCliente_Detalles_Refresh fields } + fld_FacturasCliente_Detalles_RefreshID = 'ID'; + fld_FacturasCliente_Detalles_RefreshID_FACTURA = 'ID_FACTURA'; + fld_FacturasCliente_Detalles_RefreshPOSICION = 'POSICION'; + fld_FacturasCliente_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_FacturasCliente_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_FacturasCliente_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasCliente_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasCliente_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasCliente_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_FacturasCliente_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasCliente_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { FacturasCliente_Detalles_Refresh field indexes } + idx_FacturasCliente_Detalles_RefreshID = 0; + idx_FacturasCliente_Detalles_RefreshID_FACTURA = 1; + idx_FacturasCliente_Detalles_RefreshPOSICION = 2; + idx_FacturasCliente_Detalles_RefreshTIPO_DETALLE = 3; + idx_FacturasCliente_Detalles_RefreshCONCEPTO = 4; + idx_FacturasCliente_Detalles_RefreshCANTIDAD = 5; + idx_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD = 6; + idx_FacturasCliente_Detalles_RefreshDESCUENTO = 7; + idx_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL = 8; + idx_FacturasCliente_Detalles_RefreshID_ARTICULO = 9; + idx_FacturasCliente_Detalles_RefreshVISIBLE = 10; + idx_FacturasCliente_Detalles_RefreshIMPORTE_PORTE = 11; + idx_FacturasCliente_Detalles_RefreshREFERENCIA = 12; + idx_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { FacturasCliente_Refresh fields } + fld_FacturasCliente_RefreshID = 'ID'; + fld_FacturasCliente_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_FacturasCliente_RefreshREFERENCIA = 'REFERENCIA'; + fld_FacturasCliente_RefreshTIPO = 'TIPO'; + fld_FacturasCliente_RefreshFECHA_FACTURA = 'FECHA_FACTURA'; + fld_FacturasCliente_RefreshSITUACION = 'SITUACION'; + fld_FacturasCliente_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_FacturasCliente_RefreshDESCUENTO = 'DESCUENTO'; + fld_FacturasCliente_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_FacturasCliente_RefreshIVA = 'IVA'; + fld_FacturasCliente_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_FacturasCliente_RefreshRE = 'RE'; + fld_FacturasCliente_RefreshIMPORTE_RE = 'IMPORTE_RE'; + fld_FacturasCliente_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasCliente_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_FacturasCliente_RefreshID_CLIENTE = 'ID_CLIENTE'; + fld_FacturasCliente_RefreshNIF_CIF = 'NIF_CIF'; + fld_FacturasCliente_RefreshNOMBRE = 'NOMBRE'; + fld_FacturasCliente_RefreshCALLE = 'CALLE'; + fld_FacturasCliente_RefreshPOBLACION = 'POBLACION'; + fld_FacturasCliente_RefreshPROVINCIA = 'PROVINCIA'; + fld_FacturasCliente_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_FacturasCliente_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_FacturasCliente_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_FacturasCliente_RefreshUSUARIO = 'USUARIO'; + fld_FacturasCliente_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_FacturasCliente_RefreshRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_FacturasCliente_RefreshID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_FacturasCliente_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_FacturasCliente_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasCliente_RefreshID_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_FacturasCliente_RefreshREFERENCIA_COMISION = 'REFERENCIA_COMISION'; + fld_FacturasCliente_RefreshID_AGENTE = 'ID_AGENTE'; + fld_FacturasCliente_RefreshFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + + { FacturasCliente_Refresh field indexes } + idx_FacturasCliente_RefreshID = 0; + idx_FacturasCliente_RefreshID_EMPRESA = 1; + idx_FacturasCliente_RefreshREFERENCIA = 2; + idx_FacturasCliente_RefreshTIPO = 3; + idx_FacturasCliente_RefreshFECHA_FACTURA = 4; + idx_FacturasCliente_RefreshSITUACION = 5; + idx_FacturasCliente_RefreshBASE_IMPONIBLE = 6; + idx_FacturasCliente_RefreshDESCUENTO = 7; + idx_FacturasCliente_RefreshIMPORTE_DESCUENTO = 8; + idx_FacturasCliente_RefreshIVA = 9; + idx_FacturasCliente_RefreshIMPORTE_IVA = 10; + idx_FacturasCliente_RefreshRE = 11; + idx_FacturasCliente_RefreshIMPORTE_RE = 12; + idx_FacturasCliente_RefreshIMPORTE_TOTAL = 13; + idx_FacturasCliente_RefreshOBSERVACIONES = 14; + idx_FacturasCliente_RefreshID_CLIENTE = 15; + idx_FacturasCliente_RefreshNIF_CIF = 16; + idx_FacturasCliente_RefreshNOMBRE = 17; + idx_FacturasCliente_RefreshCALLE = 18; + idx_FacturasCliente_RefreshPOBLACION = 19; + idx_FacturasCliente_RefreshPROVINCIA = 20; + idx_FacturasCliente_RefreshCODIGO_POSTAL = 21; + idx_FacturasCliente_RefreshFECHA_ALTA = 22; + idx_FacturasCliente_RefreshFECHA_MODIFICACION = 23; + idx_FacturasCliente_RefreshUSUARIO = 24; + idx_FacturasCliente_RefreshID_FORMA_PAGO = 25; + idx_FacturasCliente_RefreshRECARGO_EQUIVALENCIA = 26; + idx_FacturasCliente_RefreshID_TIPO_IVA = 27; + idx_FacturasCliente_RefreshIMPORTE_NETO = 28; + idx_FacturasCliente_RefreshIMPORTE_PORTE = 29; + idx_FacturasCliente_RefreshID_COMISION_LIQUIDADA = 30; + idx_FacturasCliente_RefreshREFERENCIA_COMISION = 31; + idx_FacturasCliente_RefreshID_AGENTE = 32; + idx_FacturasCliente_RefreshFECHA_VENCIMIENTO = 33; + +type + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{4A9A147C-F0D4-4D12-A078-E1628935D51C}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente } + IFacturasCliente = interface(IDAStronglyTypedDataTable) + ['{97F07602-AA17-43F5-B602-DF2652E5E44D}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetREFERENCIA_COMISIONValue: String; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + end; + + { TFacturasClienteDataTableRules } + TFacturasClienteDataTableRules = class(TDADataTableRules, IFacturasCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_Detalles } + IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{D4170DB7-FDD7-4E30-B782-BD714997C91F}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TFacturasCliente_DetallesDataTableRules } + TFacturasCliente_DetallesDataTableRules = class(TDADataTableRules, IFacturasCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_Detalles_Refresh } + IFacturasCliente_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{6DE35809-3133-4554-9B41-CFD14D4D76E4}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TFacturasCliente_Detalles_RefreshDataTableRules } + TFacturasCliente_Detalles_RefreshDataTableRules = class(TDADataTableRules, IFacturasCliente_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_Refresh } + IFacturasCliente_Refresh = interface(IDAStronglyTypedDataTable) + ['{9012F341-ADE0-4953-B0D9-6D9F2C1AD246}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetREFERENCIA_COMISIONValue: String; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + end; + + { TFacturasCliente_RefreshDataTableRules } + TFacturasCliente_RefreshDataTableRules = class(TDADataTableRules, IFacturasCliente_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TFacturasClienteDataTableRules } +constructor TFacturasClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasClienteDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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.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.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.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.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_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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsString := aValue.Text; +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.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.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.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.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.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.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.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_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.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.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.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].AsInteger := aValue; +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.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_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.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.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.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.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; + + +{ 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.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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].AsInteger := aValue; +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.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.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.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.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.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].AsFloat; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].AsFloat := aValue; +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.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; + + +{ TFacturasCliente_Detalles_RefreshDataTableRules } +constructor TFacturasCliente_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasCliente_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID_FACTURA].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_PORTE].AsFloat; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshIMPORTE_PORTE].AsFloat := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TFacturasCliente_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasCliente_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TFacturasCliente_RefreshDataTableRules } +constructor TFacturasCliente_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasCliente_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_EMPRESA].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshREFERENCIA].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshREFERENCIA].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshTIPO].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshTIPO].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshFECHA_FACTURA].AsDateTime; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasCliente_RefreshFECHA_FACTURA].AsDateTime := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshSITUACION].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshSITUACION].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshDESCUENTO].AsFloat; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIVA].AsFloat; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIVA].AsFloat := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetREValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshRE].AsFloat; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_RefreshRE].AsFloat := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_REValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_RE].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_REValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_RE].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_FacturasCliente_RefreshOBSERVACIONES].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_FacturasCliente_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_CLIENTE].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_CLIENTE].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshNIF_CIF].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshNIF_CIF].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshNOMBRE].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshNOMBRE].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshCALLE].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshCALLE].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshPOBLACION].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshPOBLACION].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshPROVINCIA].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshPROVINCIA].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasCliente_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasCliente_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshUSUARIO].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshUSUARIO].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_FORMA_PAGO].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshRECARGO_EQUIVALENCIA].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshRECARGO_EQUIVALENCIA].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_TIPO_IVA].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_TIPO_IVA].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_COMISION_LIQUIDADA].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_COMISION_LIQUIDADA].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetREFERENCIA_COMISIONValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshREFERENCIA_COMISION].AsString; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_RefreshREFERENCIA_COMISION].AsString := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshID_AGENTE].AsInteger; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_RefreshID_AGENTE].AsInteger := aValue; +end; + +function TFacturasCliente_RefreshDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasCliente_RefreshFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TFacturasCliente_RefreshDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasCliente_RefreshFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules); + RegisterDataTableRules(RID_FacturasCliente_Detalles, TFacturasCliente_DetallesDataTableRules); + RegisterDataTableRules(RID_FacturasCliente_Detalles_Refresh, TFacturasCliente_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_FacturasCliente_Refresh, TFacturasCliente_RefreshDataTableRules); + +end. 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 00000000..81fea70c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -0,0 +1,2339 @@ +unit schFacturasClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_DarReferenciaDelta = '{2A3A12E9-C827-4E8E-87F4-66663046BCB0}'; + RID_FacturasClienteDelta = '{EE0C8D6B-09A1-49BA-995E-D5813C219BC6}'; + RID_FacturasCliente_DetallesDelta = '{E103EFA3-3E5A-4A51-BEA4-A455639671F8}'; + RID_FacturasCliente_Detalles_RefreshDelta = '{59F4EB01-2245-46B8-B145-7B5B5559CFF0}'; + RID_FacturasCliente_RefreshDelta = '{90BC3A87-5CD3-4430-9FE9-342CB1C9B5C7}'; + +type + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{2A3A12E9-C827-4E8E-87F4-66663046BCB0}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasClienteDelta } + IFacturasClienteDelta = interface(IFacturasCliente) + ['{EE0C8D6B-09A1-49BA-995E-D5813C219BC6}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldFECHA_FACTURAValue : 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 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 : Integer; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldREFERENCIA_COMISIONValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + + { 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_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + 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 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 : Integer 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_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + end; + + { TFacturasClienteBusinessProcessorRules } + TFacturasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente, IFacturasClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + function GetOldREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + function GetOldREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property RE : Float read GetREValue write SetREValue; + property OldRE : Float read GetOldREValue; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION : String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_DetallesDelta } + IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) + ['{E103EFA3-3E5A-4A51-BEA4-A455639671F8}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_ARTICULOValue : Integer; + function GetOldVISIBLEValue : Integer; + function GetOldIMPORTE_PORTEValue : Float; + 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 : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldIMPORTE_PORTE : Float 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_Detalles_RefreshDelta } + IFacturasCliente_Detalles_RefreshDelta = interface(IFacturasCliente_Detalles_Refresh) + ['{59F4EB01-2245-46B8-B145-7B5B5559CFF0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_ARTICULOValue : Integer; + function GetOldVISIBLEValue : Integer; + function GetOldIMPORTE_PORTEValue : Float; + 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 : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TFacturasCliente_Detalles_RefreshBusinessProcessorRules } + TFacturasCliente_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente_Detalles_Refresh, IFacturasCliente_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_RefreshDelta } + IFacturasCliente_RefreshDelta = interface(IFacturasCliente_Refresh) + ['{90BC3A87-5CD3-4430-9FE9-342CB1C9B5C7}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldFECHA_FACTURAValue : 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 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 : Integer; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldREFERENCIA_COMISIONValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + + { 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_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + 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 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 : Integer 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_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + end; + + { TFacturasCliente_RefreshBusinessProcessorRules } + TFacturasCliente_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente_Refresh, IFacturasCliente_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + function GetOldREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + function GetOldREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property RE : Float read GetREValue write SetREValue; + property OldRE : Float read GetOldREValue; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property REFERENCIA_COMISION : String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TFacturasClienteBusinessProcessorRules } +constructor TFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_EMPRESA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteTIPO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_FACTURA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteSITUACION]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteBASE_IMPONIBLE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDESCUENTO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIVA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_IVA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_RE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_TOTAL]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteOBSERVACIONES]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES] := aValue.Text; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_CLIENTE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNIF_CIF]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNOMBRE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCALLE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePOBLACION]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePROVINCIA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGO_POSTAL]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_ALTA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_MODIFICACION]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteUSUARIO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_FORMA_PAGO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TFacturasClienteBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_TIPO_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := 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; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_NETO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_PORTE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := 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; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA_COMISION]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_AGENTE]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE] := aValue; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_FACTURA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := 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; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesPOSICION]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := 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; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCONCEPTO]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCANTIDAD]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := 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; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesDESCUENTO]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := 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; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_ARTICULO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := 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; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesVISIBLE]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesREFERENCIA]; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA] := aValue; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + + +{ TFacturasCliente_Detalles_RefreshBusinessProcessorRules } +constructor TFacturasCliente_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasCliente_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshID]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID_FACTURA]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshID_FACTURA]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID_FACTURA] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshPOSICION]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshPOSICION]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshPOSICION] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshCONCEPTO]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshCONCEPTO]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshCANTIDAD]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshCANTIDAD]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshDESCUENTO]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshDESCUENTO]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID_ARTICULO]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshID_ARTICULO]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshVISIBLE]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshVISIBLE]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshVISIBLE] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TFacturasCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TFacturasCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TFacturasCliente_RefreshBusinessProcessorRules } +constructor TFacturasCliente_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasCliente_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_EMPRESA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_EMPRESA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_EMPRESA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshREFERENCIA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshREFERENCIA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshREFERENCIA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshTIPO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshTIPO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshTIPO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_FACTURA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshFECHA_FACTURA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_FACTURA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshSITUACION]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshSITUACION]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshSITUACION] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshBASE_IMPONIBLE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshBASE_IMPONIBLE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshDESCUENTO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshDESCUENTO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshDESCUENTO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_DESCUENTO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIVA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIVA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIVA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_IVA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_IVA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_IVA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshRE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshRE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshRE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_RE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_RE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_RE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_TOTAL]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_TOTAL]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshOBSERVACIONES]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshOBSERVACIONES]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_CLIENTE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_CLIENTE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_CLIENTE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshNIF_CIF]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshNIF_CIF]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshNIF_CIF] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshNOMBRE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshNOMBRE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshNOMBRE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshCALLE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshCALLE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshCALLE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshPOBLACION]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshPOBLACION]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshPOBLACION] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshPROVINCIA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshPROVINCIA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshPROVINCIA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshCODIGO_POSTAL]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshCODIGO_POSTAL]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshCODIGO_POSTAL] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_ALTA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshFECHA_ALTA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_ALTA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_MODIFICACION]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshFECHA_MODIFICACION]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshUSUARIO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshUSUARIO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshUSUARIO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_FORMA_PAGO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_FORMA_PAGO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_FORMA_PAGO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshRECARGO_EQUIVALENCIA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshRECARGO_EQUIVALENCIA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshRECARGO_EQUIVALENCIA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_TIPO_IVA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_TIPO_IVA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_TIPO_IVA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_NETO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_NETO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_NETO] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_PORTE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshIMPORTE_PORTE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshIMPORTE_PORTE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_COMISION_LIQUIDADA]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_COMISION_LIQUIDADA]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_COMISION_LIQUIDADA] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshREFERENCIA_COMISION]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshREFERENCIA_COMISION]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshREFERENCIA_COMISION] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_AGENTE]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshID_AGENTE]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshID_AGENTE] := aValue; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_VENCIMIENTO]; +end; + +function TFacturasCliente_RefreshBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_RefreshFECHA_VENCIMIENTO]; +end; + +procedure TFacturasCliente_RefreshBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_RefreshFECHA_VENCIMIENTO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasCliente_DetallesDelta, TFacturasCliente_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasCliente_Detalles_RefreshDelta, TFacturasCliente_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasCliente_RefreshDelta, TFacturasCliente_RefreshBusinessProcessorRules); + +end. 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 00000000..59201ccd --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.pas @@ -0,0 +1,48 @@ +unit uBizDetallesFacturaCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_FACTURA_CLIENTE = 'Client.DetallesFactura.Cliente'; + +type + IBizDetallesFacturaCliente = interface(IFacturasCliente_Detalles) + ['{B0FB7ED5-700B-4F76-A23B-3BE9440F8464}'] + end; + + TBizDetallesFacturaCliente = class(TFacturasCliente_DetallesDataTableRules, IBizDetallesFacturaCliente) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +uses + SysUtils; + +{ TBizDetallesFacturaCliente } + +constructor TBizDetallesFacturaCliente.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesFacturaCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_FACTURA_CLIENTE, TBizDetallesFacturaCliente); + +end. 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 00000000..138ef596 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -0,0 +1,355 @@ +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 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 OnNewRecord(Sender: TDADataTable); 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, Dialogs; + +{ 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) * BASE_IMPONIBLE; +end; + +procedure TBizFacturaCliente.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 TBizFacturaCliente.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE - IMPORTE_DESCUENTO); +end; + +procedure TBizFacturaCliente.CalcularRE; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_RE := (RE / 100) * (BASE_IMPONIBLE - IMPORTE_DESCUENTO); +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; + 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; + +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_FACTURA := DateOf(Now); + TIPO := CTE_TIPO_FACTURA; + ID_CLIENTE := ID_NULO; + IVA := dmUsuarios.EmpresaActual.IVA; + RE := 0; +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.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; + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + ID_TIPO_IVA := FCliente.ID_TIPO_IVA; + RECARGO_EQUIVALENCIA := FCliente.RECARGO_EQUIVALENCIA; + 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.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas new file mode 100644 index 00000000..e347b62b --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -0,0 +1,78 @@ +unit uBizFacturasClienteServer; + +interface + +uses + schFacturasClienteServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_FACTURAS_CLIENTE = 'Server.FacturasCliente'; + REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; + +type + TBizFacturasClienteServer = class(TFacturasClienteBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schFacturasClienteClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizFacturasClienteServer } + +procedure TBizFacturasClienteServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_FacturasClienteREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_FacturasClienteREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_FacturasClienteID_EMPRESA]; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_CLIENTE, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName('VALOR').AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_FACTURAS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + end; + end; + 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 00000000..300c85f4 --- /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.dpk b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk new file mode 100644 index 00000000..c70ab997 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk @@ -0,0 +1,43 @@ +package FacturasCliente_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + FacturasCliente_view, + FacturasCliente_controller, + Familias_controller; + +contains + uPluginFacturasCliente in 'uPluginFacturasCliente.pas' {PluginFacturasCliente}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm new file mode 100644 index 00000000..b6a3ed86 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm @@ -0,0 +1,135 @@ +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 N1: TMenuItem + Tag = 11999 + Caption = '-' + end + object Facturasdecliente1: TMenuItem + Tag = 105 + 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 00000000..04f70c9f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas @@ -0,0 +1,75 @@ +unit uPluginFacturasCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFacturasCliente = interface(IInterface) + ['{8E559C5E-2878-48DB-9A87-9F82678E984F}'] + end; + + TPluginFacturasCliente = class(TModuleController, IMCFacturasCliente) + actFacturasCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Facturasdecliente1: TMenuItem; + N1: TMenuItem; + procedure actFacturasClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + 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; + uFacturasClienteViewRegister.RegisterViews; +end; + +destructor TPluginFacturasCliente.Destroy; +begin + uFacturasClienteViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginFacturasCliente); + +finalization + UnRegisterModuleClass(TPluginFacturasCliente); + +end. 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 00000000..cebad1f2 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -0,0 +1,1300 @@ +object RptFacturasCliente: TRptFacturasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_FacturaCliente + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_DetallesFacturaCliente + Left = 344 + Top = 72 + end + object tbl_FacturaCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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_DetallesFacturaCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '12' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'SELECT'#10' V_FACTURAS_CLIENTE.ID, V_FACTURAS_CLIENTE.REFERENCIA,' + + ' V_FACTURAS_CLIENTE.FECHA_FACTURA,'#10' V_FACTURAS_CLIENTE.BASE_I' + + 'MPONIBLE, V_FACTURAS_CLIENTE.DESCUENTO, V_FACTURAS_CLIENTE.IMPOR' + + 'TE_DESCUENTO,'#10' V_FACTURAS_CLIENTE.IVA, V_FACTURAS_CLIENTE.IMP' + + 'ORTE_IVA,'#10' V_FACTURAS_CLIENTE.RE, V_FACTURAS_CLIENTE.IMPORTE_' + + 'RE,'#10' V_FACTURAS_CLIENTE.IMPORTE_TOTAL,'#10' V_FACTURAS_CLIENTE' + + '.OBSERVACIONES, FORMAS_PAGO.DESCRIPCION AS FORMA_PAGO, V_FACTURA' + + 'S_CLIENTE.ID_CLIENTE,'#10' V_FACTURAS_CLIENTE.NIF_CIF, V_FACTURAS' + + '_CLIENTE.NOMBRE, V_FACTURAS_CLIENTE.CALLE,'#10' V_FACTURAS_CLIENT' + + 'E.PROVINCIA, V_FACTURAS_CLIENTE.CODIGO_POSTAL, V_FACTURAS_CLIENT' + + 'E.POBLACION,'#10#10' ID_EMPRESA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRES' + + 'A, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, E' + + 'MPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA a' + + 's PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMP' + + 'RESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, E' + + 'MPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERC' + + 'ANTIL, EMPRESAS.LOGOTIPO'#10#10'FROM V_FACTURAS_CLIENTE'#10'LEFT JOIN EMPR' + + 'ESAS ON EMPRESAS.ID = ID_EMPRESA'#10'LEFT JOIN FORMAS_PAGO ON (FORMA' + + 'S_PAGO.ID = V_FACTURAS_CLIENTE.ID_FORMA_PAGO)'#10'WHERE V_FACTURAS_C' + + 'LIENTE.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + 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 + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end> + end> + Name = 'InformeFacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '13' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'SELECT'#10' ID, ID_FACTURA, POSICION, TIPO_DETALLE, CONCEPTO, CAN' + + 'TIDAD,'#10' IMPORTE_UNIDAD, DESCUENTO, IMPORTE_TOTAL, VISIBLE'#10'FRO' + + 'M FACTURAS_CLIENTE_DETALLES'#10'WHERE ID_FACTURA = :ID_FACTURA'#10'ORDER' + + ' BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + end> + end> + Name = 'InformeFacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTRATO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39164.767996053240000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' DatosCliente.Lines.Clear;' + ' DatosCliente.Lines.Add();' + '' + ' if ( <> '#39#39')' + ' or ( <> '#39#39') then' + + ' DatosCliente.Lines.Add( + '#39' ' + + #39' + );' + 'end;' + '' + 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' BandaDetalles.StartNewPage := False;' + ' BandaDetalles.Visible := True;' + ' MemPrecio.Style := '#39'Concepto normal'#39';' + ' MemCantidad.Style := '#39'Concepto normal'#39';' + ' MemImpTotal.Style := '#39'Concepto normal'#39';' + ' RichConcepto.Visible := True;' + '' + ' case of' + ' '#39'Salto'#39': begin' + ' BandaDetalles.StartNewPage := True;' + ' RichConcepto.Visible := False;' + ' end;' + ' '#39'Titulo'#39': begin' + ' MemPrecio.Style := '#39'Concepto titulo'#39';' + ' MemCantidad.Style := '#39'Concepto titulo'#39';' + ' MemImpTotal.Style := '#39'Concepto titulo'#39';' + ' end;' + ' '#39'Concepto'#39': begin' + ' //' + ' end;' + ' '#39'Subtotal'#39': begin' + ' MemPrecio.Style := '#39'Concepto subtotal'#39';' + ' MemCantidad.Style := '#39'Concepto subtotal'#39';' + ' MemImpTotal.Style := '#39'Concepto subtotal'#39';' + ' end;' + ' '#39'Descuento'#39': begin' + ' BandaDetalles.Visible := False;' + ' RichConcepto.Color := clNone;' + ' end;' + ' end;' + '' + ' RichConcepto.Color := MemImpTotal.Color;' + ' RichConcepto.Frame := MemImpTotal.Frame;' + 'end;' + '' + '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 Memo15OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' Memo15.Lines.Clear;' + ' if (StrToFloat() < 0) then' + ' Memo15.Lines.Add('#39'ABONO'#39')' + ' else' + ' Memo15.Lines.Add('#39'FACTURA'#39')' + 'end;' + '' + 'procedure Memo20OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (StrToFloat() = 0) then' + ' begin' + ' Memo20.Lines.Clear;' + ' Memo28.Lines.Clear;' + ' Memo21.Lines.Clear;' + ' Memo29.Lines.Clear;' + ' end;' + '' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + 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/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas new file mode 100644 index 00000000..c7aab7ae --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -0,0 +1,93 @@ +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; + +type + TRptFacturasCliente = class(TDataModule) + DADataCabecera: TDADataSource; + DADataDetalles: TDADataSource; + tbl_FacturaCliente: TDACDSDataTable; + tbl_DetallesFacturaCliente: 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); + private + FConnection: IDAConnection; + public + function GenerarFactura(const AFacturaID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schFacturasClienteClient_Intf; + +const + rptFacturaCliente = 'InfFacturaCliente.fr3'; + + { Dataset names for schReport } + ds_InformeFacturasCliente = 'InformeFacturasCliente'; + ds_InformeFacturasCliente_Detalles = 'InformeFacturasCliente_Detalles'; + + +{ TRptFacturasCliente } + + +procedure TRptFacturasCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptFacturasCliente.GenerarFactura(const AFacturaID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeFacturasCliente, ['ID'], [AFacturaID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Detalles, ['ID_FACTURA'], [AFacturaID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_FacturaCliente, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_DetallesFacturaCliente, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptFacturaCliente, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + 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 00000000..157d15bb --- /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.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm new file mode 100644 index 00000000..d1e8d002 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -0,0 +1,2794 @@ +object srvFacturasCliente: TsrvFacturasCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schFacturasCliente + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 180 + Width = 386 + object schFacturasCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + + 'ESA = :EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, REFERENCIA, TIPO, FECHA_FACTURA, SIT' + + 'UACION, BASE_IMPONIBLE,'#10' DESCUENTO, IMPORTE_DESCUENTO, IVA, I' + + 'MPORTE_IVA, RE, IMPORTE_RE,'#10' IMPORTE_TOTAL, OBSERVACIONES, ID' + + '_CLIENTE, NIF_CIF, NOMBRE, CALLE,'#10' POBLACION, PROVINCIA, CODI' + + 'GO_POSTAL, FECHA_ALTA, FECHA_MODIFICACION,'#10' USUARIO, ID_FORMA' + + '_PAGO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA,'#10' IMPORTE_NETO, IMPO' + + 'RTE_PORTE, ID_COMISION_LIQUIDADA, REFERENCIA_COMISION,'#10' ID_AG' + + 'ENTE'#10' FROM'#10' V_FACTURAS_CLIENTE' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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 = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + 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 = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'REFERENCIA_COMISION' + TableField = 'REFERENCIA_COMISION' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'FacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_COMISION_LIQUIDADA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA_COMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_AGENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL' + + ','#10' FACTURAS_CLIENTE_DETALLES.VISIBLE,'#10#10' FACTURAS_CLIENTE_D' + + 'ETALLES.ID_ARTICULO, FACTURAS_CLIENTE_DETALLES.DESCUENTO,'#10' FA' + + 'CTURAS_CLIENTE_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.REFERENCIA,' + + ' ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10' '#10'FROM FAC' + + 'TURAS_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON FACTURAS_CLIENTE_D' + + 'ETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE FACTURAS_CLIENTE_DETALL' + + 'ES.ID_FACTURA = :ID_FACTURA'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + 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 = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'FacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL' + + ','#10' FACTURAS_CLIENTE_DETALLES.VISIBLE,'#10#10' FACTURAS_CLIENTE_D' + + 'ETALLES.ID_ARTICULO, FACTURAS_CLIENTE_DETALLES.DESCUENTO,'#10' FA' + + 'CTURAS_CLIENTE_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.REFERENCIA,' + + ' ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROVEEDOR'#10' '#10'FROM FAC' + + 'TURAS_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON FACTURAS_CLIENTE_D' + + 'ETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE FACTURAS_CLIENTE_DETALL' + + 'ES.ID_FACTURA = :ID_FACTURA'#10'AND FACTURAS_CLIENTE_DETALLES.ID = :' + + 'ID'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + 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 = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'FacturasCliente_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, REFERENCIA, TIPO, FECHA_FACTURA, SIT' + + 'UACION, BASE_IMPONIBLE,'#10' DESCUENTO, IMPORTE_DESCUENTO, IVA, I' + + 'MPORTE_IVA, RE, '#10' IMPORTE_RE, IMPORTE_TOTAL, OBSERVACIONES, I' + + 'D_CLIENTE, '#10' NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CO' + + 'DIGO_POSTAL, '#10' FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_FO' + + 'RMA_PAGO, '#10' RECARGO_EQUIVALENCIA, ID_TIPO_IVA, IMPORTE_NETO, ' + + 'IMPORTE_PORTE, ID_COMISION_LIQUIDADA,'#10' REFERENCIA_COMISION, I' + + 'D_AGENTE'#10' FROM'#10' V_FACTURAS_CLIENTE'#10' WHERE ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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 = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + 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 = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'REFERENCIA_COMISION' + TableField = 'REFERENCIA_COMISION' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'FacturasCliente_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'ID_EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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 = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO FACTURAS_CLIENTE_DETALLES'#10' (ID, CANTIDAD, POSIC' + + 'ION, ID_FACTURA, TIPO_DETALLE, CONCEPTO,'#10' IMPORTE_UNIDAD, IM' + + 'PORTE_TOTAL, VISIBLE,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_PORTE' + + ')'#10' VALUES'#10' (:ID, :CANTIDAD, :POSICION, :ID_FACTURA, :TIPO_DE' + + 'TALLE, :CONCEPTO,'#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE' + + ','#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'UPDATE FACTURAS_CLIENTE_DETALLES'#10' SET '#10' CANTIDAD = :CANTIDAD' + + ', '#10' POSICION = :POSICION, '#10' ID_FACTURA = :ID_FACTURA, '#10' ' + + ' TIPO_DETALLE = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' I' + + 'MPORTE_UNIDAD = :IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_T' + + 'OTAL,'#10' VISIBLE = :VISIBLE,'#10' ID_ARTICULO = :ID_ARTICULO,'#10' ' + + ' DESCUENTO = :DESCUENTO,'#10' IMPORTE_PORTE = :IMPORTE_PORTE'#10' W' + + 'HERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'INSERT INTO FACTURAS_CLIENTE ('#10' ID,'#10' ID_EMPRESA,'#10' REFER' + + 'ENCIA,'#10' FECHA_FACTURA,'#10' BASE_IMPONIBLE,'#10' DESCUENTO,'#10' ' + + ' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA,'#10' RE,'#10' IMPORT' + + 'E_RE,'#10' IMPORTE_TOTAL,'#10' OBSERVACIONES,'#10' ID_CLIENTE,'#10' ' + + 'NIF_CIF,'#10' NOMBRE,'#10' CALLE,'#10' POBLACION,'#10' PROVINCIA,'#10' ' + + ' CODIGO_POSTAL,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USU' + + 'ARIO,'#10' ID_FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA,'#10' ID_TIPO_I' + + 'VA,'#10' IMPORTE_NETO,'#10' IMPORTE_PORTE)'#10' VALUES ('#10' :ID,'#10' ' + + ' :ID_EMPRESA,'#10' :REFERENCIA,'#10' :FECHA_FACTURA,'#10' :BASE_IMP' + + 'ONIBLE,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :I' + + 'MPORTE_IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' :O' + + 'BSERVACIONES,'#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' :C' + + 'ALLE,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_POSTAL,'#10' :F' + + 'ECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :ID_FORMA_' + + 'PAGO,'#10' :RECARGO_EQUIVALENCIA,'#10' :ID_TIPO_IVA,'#10' :IMPORTE_' + + 'NETO,'#10' :IMPORTE_PORTE);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasCliente' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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' ' + + ' BASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESCUENTO = :DESCUENTO,'#10 + + ' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO,'#10' IVA = :IVA,'#10' ' + + 'IMPORTE_IVA = :IMPORTE_IVA,'#10' RE = :RE,'#10' IMPORTE_RE = :IMPO' + + 'RTE_RE,'#10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' OBSERVACIONES = ' + + ':OBSERVACIONES,'#10' ID_CLIENTE = :ID_CLIENTE,'#10' NIF_CIF = :NIF' + + '_CIF,'#10' NOMBRE = :NOMBRE,'#10' CALLE = :CALLE,'#10' POBLACION = ' + + ':POBLACION,'#10' PROVINCIA = :PROVINCIA,'#10' CODIGO_POSTAL = :COD' + + 'IGO_POSTAL,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION' + + ' = :FECHA_MODIFICACION,'#10' USUARIO = :USUARIO,'#10' ID_FORMA_PAG' + + 'O = :ID_FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA = :RECARGO_EQUIVALE' + + 'NCIA,'#10' ID_TIPO_IVA = :ID_TIPO_IVA,'#10' IMPORTE_NETO = :IMPORT' + + 'E_NETO,'#10' IMPORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_' + + 'ID);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasCliente' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert FacturasCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FacturasCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert DetallesFacturasCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FacturasCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update FacturasCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FacturasCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update DetallesFacturasCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FacturasCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete DetallesFacturasCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FacturasCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete FacturasCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FacturasCliente' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_PAGADO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de vencimiento' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Con R.E.?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_TIPO_IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_COMISION_LIQUIDADA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_COMISION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_AGENTE' + Alignment = taLeftJustify + end> + Left = 150 + Top = 22 + end + object bpFacturasCliente: TDABusinessProcessor + Schema = schFacturasCliente + InsertCommandName = 'Insert_FacturasCliente' + DeleteCommandName = 'Delete_FacturasCliente' + UpdateCommandName = 'Update_FacturasCliente' + RefreshDatasetName = 'FacturasCliente_Refresh' + ReferencedDataset = 'FacturasCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 16 + end + object bpFacturasCliente_Detalles: TDABusinessProcessor + Schema = schFacturasCliente + InsertCommandName = 'Insert_FacturasCliente_Detalles' + DeleteCommandName = 'Delete_FacturasCliente_Detalles' + UpdateCommandName = 'Update_FacturasCliente_Detalles' + RefreshDatasetName = 'FacturasCliente_Detalles_Refresh' + ReferencedDataset = 'FacturasCliente_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 72 + 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 00000000..2390bd3c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas @@ -0,0 +1,103 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDAInterfaces, frxClass, DB, IBCustomDataSet, IBDatabase, + uDABusinessProcessor, uDAScriptingProvider, uDACDSDataTable; + +type + { TsrvFacturasCliente } + TsrvFacturasCliente = class(TDARemoteService, IsrvFacturasCliente) + DABINAdapter: TDABINAdapter; + Diagrams: TDADiagrams; + bpFacturasCliente: TDABusinessProcessor; + bpFacturasCliente_Detalles: TDABusinessProcessor; + schFacturasCliente: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvFacturasCliente methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Dialogs, + uDataModuleServer, uDatabaseUtils, uUsersManager, schFacturasClienteClient_Intf, + uRestriccionesUsuarioUtils, uRptFacturasCliente_Server, uBizFacturasClienteServer; + +procedure Create_srvFacturasCliente(out anInstance : IUnknown); +begin + anInstance := TsrvFacturasCliente.Create(NIL); +end; + +{ srvFacturasCliente } +procedure TsrvFacturasCliente.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvFacturasCliente.GenerateReport(const FacturaID: Integer): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarFactura(FacturaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvFacturasCliente.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..c5dacc4d --- /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 00000000..5b596879 --- /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.drc b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..37a3dbd7 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 00000000..b054a7ca --- /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 00000000..1de986c4 --- /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 00000000..50f4b46e --- /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 00000000..e8df46e1 --- /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 00000000..e5e483c4 --- /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 00000000..38459295 --- /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.dpk b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk new file mode 100644 index 00000000..276a3195 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk @@ -0,0 +1,106 @@ +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 + rtl, + vcl, + dbrtl, + vcldb, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + GUIBase, + Contactos_model, + Contactos_view, + DataAbstract_D10, + Empresas_controller, + FacturasCliente_model, + FacturasCliente_controller, + FacturasCliente_data, + JvGlobusD10R, + VclSmp, + vclie, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + Articulos_view, + FormasPago_model, + FormasPago_controller, + AlbCli_FacCli_relation; + +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}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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/Familias_model.drc b/Source/Modulos/Facturas de cliente/Views/Familias_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/Familias_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..56ceb54f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosFacturaCliente: TfEditorElegirArticulosFacturaCliente + Caption = 'fEditorElegirArticulosFacturaCliente' + 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 00000000..a23af8d5 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.pas @@ -0,0 +1,33 @@ +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, + JvgWizardHeader, uIEditorElegirArticulosFacturasCliente; + +type + TfEditorElegirArticulosFacturaCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosFacturasCliente) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosFacturasCliente; + +{ TfEditorElegirArticulosFacturaCliente } + +procedure TfEditorElegirArticulosFacturaCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosFacturasCliente) as IViewElegirArticulosFacturasCliente; +end; + +end. 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 00000000..727ccfa1 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dfm @@ -0,0 +1,423 @@ +inherited fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente + Caption = 'Seleccionar facturas de cliente' + ClientWidth = 654 + ExplicitWidth = 662 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 0 + Width = 654 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + + 'Seleccione las facturas de cliente, que desea liquidar su comisi' + + #243'n') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = -21 + ExplicitWidth = 656 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 144 + Width = 654 + Caption = 'Lista de facturas de cliente para liquidar su comisi'#243'n' + Visible = False + ExplicitTop = 144 + ExplicitWidth = 654 + inherited Image1: TImage + Left = 627 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 171 + Width = 654 + Height = 49 + ExplicitTop = 171 + ExplicitWidth = 654 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 181 + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 181 + Top = 23 + DockPos = 104 + DockRow = 1 + Visible = False + ExplicitLeft = 181 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 654 + end + end + inherited StatusBar: TJvStatusBar + Width = 654 + ExplicitWidth = 654 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + 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 + inherited frViewFacturasCliente1: TfrViewFacturasCliente [5] + Top = 220 + Width = 654 + Height = 391 + ExplicitTop = 220 + ExplicitWidth = 654 + ExplicitHeight = 391 + inherited cxGrid: TcxGrid + Width = 654 + Height = 263 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 654 + ExplicitHeight = 263 + 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 + ExplicitWidth = 654 + inherited TBXDock1: TTBXDock + Width = 654 + ExplicitWidth = 654 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 654 + inherited dxLayoutControl1: TdxLayoutControl + Width = 650 + ExplicitWidth = 650 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 650 + ExplicitWidth = 650 + inherited tbxBotones: TTBXToolbar + Width = 640 + ExplicitWidth = 640 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 365 + ExplicitTop = 365 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 654 + ExplicitWidth = 654 + inherited TBXToolbar1: TTBXToolbar + Width = 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + end + object pnlFiltrar: TTBXDockablePanel [6] + Left = 0 + Top = 60 + 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 = 296 + Top = 50 + Width = 17 + Height = 13 + Caption = 'y el' + end + object txtFiltroTodo: TcxTextEdit + Left = 168 + 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 = 168 + 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 = 320 + 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 = 'Facturas 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 = 145 + Height = 17 + Caption = 'Facturas con fechas entre:' + TabOrder = 4 + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object Button1: TBitBtn + Left = 470 + 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 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 [13] + end + inherited GridPopupMenu: TPopupMenu [14] + Left = 80 + Top = 192 + end + inherited JsNuevaFacturaDialog: TJSDialog [15] + end + inherited JsListaFacturasGeneradas: TJSDialog [16] + end + inherited JsPrevisualizarDialog: TJSDialog [17] + end + inherited JsImprimirDialog: TJSDialog [18] + 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/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas new file mode 100644 index 00000000..025810f9 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas @@ -0,0 +1,210 @@ +{ +=============================================================================== + 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, JvgWizardHeader, StdCtrls, + + uViewFacturasCliente, uEditorFacturasCliente, uBizFacturasCliente, uIEditorElegirFacturasCliente, + Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, + cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog; + + +type + TfEditorElegirFacturasCliente = class(TfEditorFacturasCliente, IEditorElegirFacturasCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlFiltrar: TTBXDockablePanel; + Label1: TLabel; + txtFiltroTodo: TcxTextEdit; + edtFechaFiltro1: TcxDateEdit; + edtFechaFiltro2: TcxDateEdit; + rbTodo: TcxRadioButton; + rbFechas: TcxRadioButton; + Button1: TBitBtn; + 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 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, + uGridUtils, uEditorBase, uFacturasClienteController; + +{$R *.dfm} + +{ TfEditorElegirFacturasCliente } + +procedure TfEditorElegirFacturasCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirFacturasCliente.actQuitarFiltro2Execute(Sender: TObject); +begin +// inherited; + + if Assigned(ViewGrid) then + begin + txtFiltroTodo.Clear; + edtFechaFiltro1.Clear; + edtFechaFiltro2.Clear; +// (ViewGrid as IViewFacturasCliente).FiltrarPorFechas(null, null); + inherited; + end; + +// actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirFacturasCliente.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then + begin + if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then + begin + ShowMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaFiltro1.SetFocus; + end + else +// (ViewGrid as IViewFacturasCliente).FiltrarPorFechas(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue); + end; +end; + +procedure TfEditorElegirFacturasCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +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; + +procedure TfEditorElegirFacturasCliente.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 TfEditorElegirFacturasCliente.GetMensaje: String; +begin + Result := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirFacturasCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirFacturasCliente.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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; + +procedure TfEditorElegirFacturasCliente.txtFiltroTodoPropertiesChange(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.Filter := txtFiltroTodo.Text; +end; + +end. 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 00000000..72766508 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm @@ -0,0 +1,424 @@ +inherited fEditorFacturaCliente: TfEditorFacturaCliente + Left = 454 + Top = 208 + Caption = 'Nueva factura de cliente' + ClientHeight = 575 + ClientWidth = 788 + Position = poScreenCenter + OnClose = CustomEditorClose + ExplicitWidth = 796 + ExplicitHeight = 609 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 788 + Caption = 'Nueva factura de cliente' + ExplicitWidth = 788 + inherited Image1: TImage + Left = 761 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 742 + end + end + inherited TBXDock: TTBXDock + Width = 788 + ExplicitWidth = 788 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 788 + 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 = 788 + Height = 317 + OnChanging = pgPaginasChanging + ExplicitWidth = 788 + ExplicitHeight = 317 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 780 + ExplicitHeight = 289 + inline frViewFacturaCliente1: TfrViewFacturaCliente + Left = 0 + Top = 0 + Width = 780 + Height = 289 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 780 + ExplicitHeight = 289 + inherited dxLayoutControl1: TdxLayoutControl + Width = 780 + Height = 289 + ExplicitWidth = 780 + ExplicitHeight = 289 + DesignSize = ( + 780 + 289) + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 393 + Width = 393 + end + inherited edtFecha: TcxDBDateEdit + ExplicitWidth = 393 + Width = 393 + end + inherited memObservaciones: TcxDBMemo + ExplicitWidth = 473 + ExplicitHeight = 109 + Height = 109 + Width = 473 + end + inherited frViewClienteFactura: TfrViewDatosYSeleccionCliente + Left = 474 + Width = 332 + ExplicitLeft = 474 + ExplicitWidth = 332 + inherited dxLayoutControl1: TdxLayoutControl + Width = 332 + ExplicitWidth = 332 + inherited edtlNombre: TcxDBTextEdit + Properties.OnChange = frViewClienteFacturaedtlNombrePropertiesChange + end + end + end + inherited cbFormaPago: TcxDBLookupComboBox + ExplicitWidth = 255 + Width = 255 + end + inherited bFormasPago: TButton + Left = 314 + ExplicitLeft = 314 + end + end + end + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente + Left = 0 + Top = 0 + Width = 780 + Height = 289 + 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 = 780 + ExplicitHeight = 289 + inherited ToolBar1: TToolBar + Width = 780 + ExplicitWidth = 780 + inherited FontSize: TEdit + Width = 58 + ExplicitWidth = 58 + end + inherited UpDown1: TUpDown + Left = 237 + ExplicitLeft = 237 + end + inherited ToolButton13: TToolButton + Left = 254 + ExplicitLeft = 254 + end + inherited ToolButton6: TToolButton + Left = 262 + ExplicitLeft = 262 + end + inherited ToolButton7: TToolButton + Left = 296 + ExplicitLeft = 296 + end + inherited ToolButton8: TToolButton + Left = 330 + ExplicitLeft = 330 + end + inherited ToolButton12: TToolButton + Left = 364 + ExplicitLeft = 364 + end + inherited ToolButton9: TToolButton + Left = 372 + ExplicitLeft = 372 + end + inherited ToolButton10: TToolButton + Left = 406 + ExplicitLeft = 406 + end + inherited ToolButton11: TToolButton + Left = 440 + ExplicitLeft = 440 + end + end + inherited cxGrid: TcxGrid + Width = 780 + Height = 217 + ExplicitWidth = 780 + ExplicitHeight = 217 + end + inherited TBXDock1: TTBXDock + Width = 780 + ExplicitWidth = 780 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 556 + Width = 788 + Panels = < + item + Width = 200 + end> + ExplicitTop = 556 + ExplicitWidth = 788 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 393 + Width = 788 + Height = 163 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 393 + ExplicitWidth = 788 + ExplicitHeight = 163 + inherited dxLayoutControl1: TdxLayoutControl + Width = 788 + LookAndFeel = frViewFacturaCliente1.dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 788 + inherited Bevel1: TBevel + Top = 111 + Width = 73 + ExplicitTop = 111 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 420 + Top = 30 + Height = 122 + ExplicitLeft = 420 + ExplicitTop = 30 + ExplicitHeight = 122 + end + inherited Bevel4: TBevel + Left = 532 + Top = 111 + Width = 186 + ExplicitLeft = 532 + ExplicitTop = 111 + ExplicitWidth = 186 + end + inherited ImporteDto: TcxDBCurrencyEdit + Top = 131 + Style.IsFontAssigned = True + ExplicitTop = 131 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 603 + Top = 57 + Style.IsFontAssigned = True + ExplicitLeft = 603 + ExplicitTop = 57 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 533 + Top = 131 + Style.IsFontAssigned = True + ExplicitLeft = 533 + ExplicitTop = 131 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Top = 131 + Properties.OnValidate = frViewTotales1edtDescuentoPropertiesValidate + Style.IsFontAssigned = True + ExplicitTop = 131 + end + inherited edtIVA: TcxDBSpinEdit + Left = 532 + Top = 57 + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 57 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 532 + Top = 30 + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 30 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 532 + Top = 84 + Properties.AssignedValues.MinValue = True + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 84 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 603 + Top = 84 + Style.IsFontAssigned = True + ExplicitLeft = 603 + ExplicitTop = 84 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Top = 30 + Style.IsFontAssigned = True + ExplicitTop = 30 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Top = 158 + DataBinding.DataSource = dsDataTable + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.IsFontAssigned = True + ExplicitTop = 158 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Top = 57 + Properties.OnValidate = frViewTotales1eIVAPropertiesValidate + Style.Color = clInfoBk + ExplicitTop = 57 + ExplicitWidth = 134 + Width = 134 + end + inherited bTiposIVA: TButton + Left = 272 + Top = 57 + OnClick = frViewTotales1bTiposIVAClick + ExplicitLeft = 272 + ExplicitTop = 57 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 84 + Properties.OnEditValueChanged = frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged + ExplicitTop = 84 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item4: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item1: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group8: TdxLayoutGroup + inherited dxLayoutControl1Item7: TdxLayoutItem + Visible = True + end + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 8 + Top = 144 + 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 cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas new file mode 100644 index 00000000..4fd10a88 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas @@ -0,0 +1,383 @@ +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, + + + uIEditorFacturaCliente, uFacturasClienteController, uViewDetallesBase, + uViewDetallesFacturaCliente, dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, + uViewDetallesDTO, uViewDetallesArticulos, uTiposIVAController; + + +type + TfEditorFacturaCliente = class(TfEditorDBItem, IEditorFacturaCliente) + frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente; + frViewFacturaCliente1: TfrViewFacturaCliente; + frViewTotales1: TfrViewTotales; + 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); + + protected + FController : IFacturasClienteController; + FFactura: IBizFacturaCliente; + FViewFactura: IViewFacturaCliente; + FTiposIVAController : ITiposIVAController; + 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; + public + destructor Destroy; override; + property Controller : IFacturasClienteController read GetController write SetController; + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses + cxDBEdit, uBizContactos, uDataModuleUsuarios, cxControls, uBizTiposIVA, + uDetallesFacturaClienteController, uDialogUtils, uDataTableUtils, + uGenerarAlbaranesCliFacCliUtils; + + +{ TfEditorFacturaCliente } + +{ +**************************** TfEditorFacturaCliente **************************** +} +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; + dsDataTable.DataTable := NIL; + frViewTotales1.DADataSource.DataTable := NIL; + + FViewFactura := NIL; + FFactura := NIL; +end; + +destructor TfEditorFacturaCliente.Destroy; +begin + FTiposIVAController := NIL; + 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), 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Factura); + inherited; + end; +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((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA); +end; + +procedure TfEditorFacturaCliente.frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; +{ if frViewTotales1.cbRecargoEquivalencia.Checked then + Factura.RECARGO_EQUIVALENCIA := 1 + else + Factura.RECARGO_EQUIVALENCIA := 0;} +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.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.IMPORTE_PORTE := DisplayValue; +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 código ' + FFactura.REFERENCIA) + else + begin + ShowInfoMessage('El abono se ha dado de alta con el código ' + FFactura.REFERENCIA); + //Preguntamos is desea hacer una orden de devolución asociada + if (Application.MessageBox('¿Desea crear una orden de devolución para el abono?', 'Atención', MB_YESNO) = IDYES) then + GenerarAlbaranCli(FFactura); + end; + end; + + Modified := False; +end; + +procedure TfEditorFacturaCliente.ImprimirInterno; +begin + inherited; + FController.Print(FFactura); +end; + +procedure TfEditorFacturaCliente.OnClienteChanged(Sender: TObject); +var + FDetallesController : IDetallesFacturaClienteController; +begin + FFactura.Cliente := frViewFacturaCliente1.frViewClienteFactura.Cliente; + + // 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; + + // Si la factura tiene detalles hay que mirar si los descuentos y otros campos + // para los artículos hay que cambiarlos. + if (FFactura.Detalles.RecordCount > 0) then + begin + FDetallesController := TDetallesFacturaClienteController.Create; + try + FDetallesController.ActualizarDetalles(FFactura.Detalles, FFactura.Cliente); + finally + FDetallesController := NIL; + end; + end; +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'; + Showmessage(ACadena); + AllowChange := False; + end; +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 + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorFacturaCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FFactura); +end; + +procedure TfEditorFacturaCliente.SetController(const Value: IFacturasClienteController); +begin + FController := Value; + + if Assigned(FController) then + begin + frViewFacturaCliente1.frViewClienteFactura.Controller := Controller.ClienteController; + 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; + + frViewTotales1.dsTiposIVA.DataTable := FTiposIVAController.BuscarTodos.DataTable; + frViewTotales1.dsTiposIVA.DataTable.Active := True; + + if Assigned(FViewFactura) then + begin + frViewFacturaCliente1.frViewClienteFactura.Cliente := FFactura.Cliente; + frViewFacturaCliente1.frViewClienteFactura.OnClienteChanged := OnClienteChanged; + + FViewFactura.Factura := FFactura; + frViewDetallesFacturaCliente1.Detalles := FFactura.Detalles; + frViewDetallesFacturaCliente1.Factura := FFactura; //Para poder sacar los descuento del articulos segun el cliente seleccionado + end; + end + else begin + frViewFacturaCliente1.frViewClienteFactura.OnClienteChanged := NIL; + frViewFacturaCliente1.frViewClienteFactura.Cliente := 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.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm new file mode 100644 index 00000000..03da456f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -0,0 +1,3312 @@ +inherited fEditorFacturasCliente: TfEditorFacturasCliente + Caption = 'Lista de facturas de cliente' + ClientHeight = 666 + ClientWidth = 640 + ExplicitWidth = 648 + ExplicitHeight = 700 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 640 + Caption = 'Lista de facturas de cliente' + ExplicitWidth = 640 + inherited Image1: TImage + Left = 613 + 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 = 640 + ExplicitWidth = 640 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 623 + 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 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 640 + end + end + inherited StatusBar: TJvStatusBar + Top = 647 + Width = 640 + ExplicitTop = 647 + ExplicitWidth = 640 + end + inline frViewFacturasCliente1: TfrViewFacturasCliente [3] + Left = 0 + Top = 102 + Width = 640 + 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 = 640 + ExplicitHeight = 545 + inherited cxGrid: TcxGrid + Width = 640 + Height = 417 + ExplicitWidth = 640 + ExplicitHeight = 417 + 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 = 640 + ExplicitWidth = 640 + inherited TBXDock1: TTBXDock + Width = 640 + ExplicitWidth = 640 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 640 + inherited dxLayoutControl1: TdxLayoutControl + Width = 636 + ExplicitWidth = 636 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 393 + ExplicitLeft = 393 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 636 + ExplicitWidth = 636 + inherited tbxBotones: TTBXToolbar + Width = 626 + ExplicitWidth = 626 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 519 + ExplicitTop = 519 + ExplicitWidth = 640 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 640 + ExplicitWidth = 640 + inherited TBXToolbar1: TTBXToolbar + Width = 630 + ExplicitWidth = 630 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 + 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 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 albaranes de cliente.' + Value = 200 + 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 seleccionada' + 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 seleccionada' + 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 +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 00000000..c1e1a511 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -0,0 +1,311 @@ +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; + +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; + procedure FormShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actNuevaFacturaExecute(Sender: TObject); + procedure actNuevoAbonoExecute(Sender: TObject); + 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; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; + property Controller : IFacturasClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +uses + uDataModuleFacturasCliente, uDataModuleUsuarios, uAlbaranesClienteController, + uPedidosClienteController, uBizAlbaranesCliente, uBizPedidosCliente, + uEditorBase, uGenerarFacturasCliAlbCliUtils; + +{$R *.dfm} + +{ +*************************** TfEditorFacturasCliente *************************** +} +procedure TfEditorFacturasCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FFacturas.SITUACION = 'PENDIENTE'); +end; + +procedure TfEditorFacturasCliente.actModificarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FFacturas.SITUACION = 'PENDIENTE'); +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; + 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; +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 + begin + FController.Eliminar(Facturas); + inherited; + end; +end; + +procedure TfEditorFacturasCliente.FormShow(Sender: TObject); +begin + 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; +begin + //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 + FController.Print(Facturas); + end; + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.ModificarInterno; +begin + inherited; + FController.Ver(Facturas); +end; + +procedure TfEditorFacturasCliente.NuevoInterno; +var + Respuesta : Integer; + //FPedidosClienteController : IPedidosClienteController; + //APedido : IBizPedidoCliente; + //FAlbaranesClienteController : IAlbaranesClienteController; + //AAlbaranes : IBizAlbaranCliente; + //AFacturasNuevas : IBizFacturaCliente; + //i : integer; +begin + inherited; + + Respuesta := JsNuevaFacturaDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevaFacturaDialog.CustomButtonResult of + 300 : begin // Utilizar un pedido + ShowMessage('A COMPLETAR'); + {FPedidosClienteController := TPedidosClienteController.Create; + try + APedido := FPedidosClienteController.ElegirPedidos(FPedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta la factura.' + + #10#13 + 'Tenga en cuenta que sólo se podrán utilizar pedidos que no tengan ningún albarán ya asociado.', False); + if Assigned(APedido) then + begin + if FController.Anadir(Facturas, APedido) then + FController.Ver(Facturas); + end; + finally + FPedidosClienteController := NIL; + end;} + end; + 200 : begin // Utilizar albaranes + GenerarFacturaCli; + actRefrescar.Execute; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Facturas) then + FController.Ver(Facturas); + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de facturas de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorFacturasCliente.PrevisualizarInterno; +var + Respuesta : Integer; +begin + //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 + FController.Preview(Facturas); + end; + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.SetController(const Value: IFacturasClienteController); +begin + FController := Value; +end; + +procedure TfEditorFacturasCliente.SetFacturas(const Value: IBizFacturaCliente); +begin + FFacturas := Value; + dsDataTable.DataTable := FFacturas.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewFacturasCliente).Facturas := Facturas; +end; + +end. 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 00000000..4812f26e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview + Caption = 'Previsualizar la factura' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + 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 00000000..ab8b2a9f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.pas @@ -0,0 +1,28 @@ +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; + +type + TfEditorFacturasClientePreview = class(TfEditorPreview, IEditorFacturasClientePreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. 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 00000000..b936871f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas @@ -0,0 +1,33 @@ +unit uFacturasClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente, + uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente, + uEditorElegirFacturasCliente; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFacturasCliente, 'EditorFacturasCliente'); + EditorRegistry.RegisterClass(TfEditorFacturaCliente, 'EditorFacturaCliente'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaCliente, 'EditorElegirArticulosFacturaCliente'); + EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente'); + EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFacturasCliente); + EditorRegistry.UnRegisterClass(TfEditorFacturaCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente); + EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview); +end; + +end. 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 00000000..41aff72a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dfm @@ -0,0 +1,13 @@ +inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited TBXDock1: TTBXDock + ExplicitTop = 46 + ExplicitWidth = 451 + 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 00000000..a2f55e8f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.pas @@ -0,0 +1,70 @@ +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; + +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(TfrViewDetallesArticulos) + protected + FFactura: IBizFacturaCliente; + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + + procedure AnadirArticulosInterno; 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 + Result := (Controller as IDetallesFacturaClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Factura.Cliente.ID); + + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaClienteController).CambiarSignoDetalles(Detalles); +end; + +procedure TfrViewDetallesFacturaCliente.AnadirArticulosInterno; +begin + (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente); + + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaClienteController).CambiarSignoDetalles(Detalles); +end; + +function TfrViewDetallesFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +procedure TfrViewDetallesFacturaCliente.SetFactura(const Value: IBizFacturaCliente); +begin + FFactura := Value; +end; + +end. 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 00000000..c5561b39 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dfm @@ -0,0 +1,43 @@ +inherited frViewElegirArticulosFacturasCliente: TfrViewElegirArticulosFacturasCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_NETO: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + 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 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39231.869697800920000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = 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 00000000..da69478e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.pas @@ -0,0 +1,27 @@ +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase; + +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.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm new file mode 100644 index 00000000..a9fa0c8b --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm @@ -0,0 +1,266 @@ +inherited frViewFacturaCliente: TfrViewFacturaCliente + Width = 451 + Height = 304 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 451 + 304) + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 159 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 159 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 137 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Height = 159 + Width = 301 + end + inline frViewClienteFactura: TfrViewDatosYSeleccionCliente + Left = 310 + Top = 30 + Width = 314 + Height = 215 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 5 + ReadOnly = False + ExplicitLeft = 310 + ExplicitTop = 30 + ExplicitWidth = 314 + ExplicitHeight = 215 + inherited dxLayoutControl1: TdxLayoutControl + Width = 314 + Height = 215 + ExplicitWidth = 314 + ExplicitHeight = 215 + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 192 + ExplicitLeft = 192 + end + inherited Button3: TBitBtn + Left = 82 + ExplicitLeft = 82 + end + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 124 + Top = 84 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.GridMode = True + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsFormaPago + 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 = 2 + Width = 78 + end + object bFormasPago: TButton + Left = 150 + Top = 84 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 3 + OnClick = bFormasPagoClick + 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 dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha de la factura:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + 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 + 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 cliente' + object dxLayoutControl1Item6: TdxLayoutItem + Control = frViewClienteFactura + ControlOptions.AutoColor = True + 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 = 64 + Top = 24 + 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 00000000..ed2f7c22 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas @@ -0,0 +1,124 @@ +unit uViewFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, uCustomView, + uViewDatosYSeleccionCliente, uBizFacturasCliente, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, + cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask, + DBCtrls, cxGraphics, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, uFormasPagoController; + +type + IViewFacturaCliente = interface(IViewBase) + ['{3A95930C-20B3-41E9-93CB-21138ADB5B70}'] + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + 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; + frViewClienteFactura: TfrViewDatosYSeleccionCliente; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dsFormaPago: TDADataSource; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item10: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + procedure bFormasPagoClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + protected + FFactura : IBizFacturaCliente; + FFormasPagoController : IFormasPagoController; + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + public + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + end; + + +implementation + +uses + uDataModuleContactos, schFacturasClienteClient_Intf, + uBizFormasPago; + +{$R *.dfm} + +{ TfrViewFacturaCliente } + +procedure TfrViewFacturaCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewFacturaCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPagoController := TFormasPagoController.Create; +end; + +procedure TfrViewFacturaCliente.CustomViewDestroy(Sender: TObject); +begin + inherited; + FFormasPagoController := NIL; +end; + +function TfrViewFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +procedure TfrViewFacturaCliente.SetFactura(const Value: IBizFacturaCliente); +var + ACadena : String; +begin + FFactura := Value; + if Assigned(FFactura) then + begin + DADataSource.DataTable := FFactura.DataTable; + + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + + //Solo se deshabilita al insertar, luego la referencia será modificable + eReferencia.Enabled := (FFactura.DataTable.State = dsInsert); + + 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.'; + frViewClienteFactura.MsgElegirCliente := ACadena; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + frViewClienteFactura.Cliente := NIL + end; +end; + +end. 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 00000000..dea087c1 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm @@ -0,0 +1,519 @@ +inherited frViewFacturasCliente: TfrViewFacturasCliente + Width = 531 + Height = 397 + ExplicitWidth = 531 + ExplicitHeight = 397 + inherited cxGrid: TcxGrid + Width = 531 + Height = 269 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 531 + ExplicitHeight = 269 + 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> + 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 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 cxGridViewREFERENCIA_COMISION: TcxGridDBColumn + Caption = 'Liquidaci'#243'n' + DataBinding.FieldName = 'REFERENCIA_COMISION' + 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 = 531 + ExplicitWidth = 531 + inherited TBXDock1: TTBXDock + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 527 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 328 + ExplicitLeft = 328 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 527 + ExplicitWidth = 527 + inherited tbxBotones: TTBXToolbar + Width = 517 + ExplicitWidth = 517 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 371 + Visible = True + ExplicitTop = 371 + ExplicitWidth = 531 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited TBXToolbar1: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 00000000..405c2094 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas @@ -0,0 +1,225 @@ +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, dxPScxGridLnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizFacturasCliente, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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; + 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); + + 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; + +{$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.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 := cxStylePagada + else if (ASituacion = CTE_PENDIENTE) then + AStyle := cxStylePendientes + else if (ASituacion = CTE_PARCIAMENTE_PAGADA) then + AStyle := cxStyleParciales; + + IndiceCol := cxGridViewIMPORTE_TOTAL.Index; + if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then + AStyle := cxStyleAbono; + 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 00000000..91952f88 --- /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.dpk b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk new file mode 100644 index 00000000..fef85d36 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk @@ -0,0 +1,58 @@ +package FacturasProveedor_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + GUIBase, + ControllerBase, + Usuarios, + Contactos_controller, + Articulos_controller, + FormasPago_controller, + FacturasProveedor_model, + FacturasProveedor_data, + RecibosProveedor_controller, + AlbaranesProveedor_controller, + AlbaranesProveedor_model; + +contains + uFacturasProveedorController in 'uFacturasProveedorController.pas', + uDetallesFacturaProveedorController in 'uDetallesFacturaProveedorController.pas', + uIEditorFacturasProveedor in 'View\uIEditorFacturasProveedor.pas', + uIEditorFacturaProveedor in 'View\uIEditorFacturaProveedor.pas', + uFacturasProveedorReportController in 'uFacturasProveedorReportController.pas', + uIEditorFacturasProveedorPreview in 'View\uIEditorFacturasProveedorPreview.pas', + uIEditorElegirArticulosFacturasProveedor in 'View\uIEditorElegirArticulosFacturasProveedor.pas', + uArticulosFacturaProveedorController in 'uArticulosFacturaProveedorController.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas new file mode 100644 index 00000000..5471b12b --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosFacturasProveedor; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosFacturasProveedor = interface(IEditorElegirArticulos) + ['{21C9BC41-C4B2-44CD-BCB3-F32A4BD5AC4E}'] + end; + + +implementation + +end. 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 00000000..285566ef --- /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.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.pas new file mode 100644 index 00000000..b0c0a57b --- /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.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.pas new file mode 100644 index 00000000..e72fc54b --- /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.pas b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas new file mode 100644 index 00000000..45fdc13c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas @@ -0,0 +1,47 @@ +unit uArticulosFacturaProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosFacturaProveedorController = interface(IArticulosController) + ['{9B6F6963-D16F-43FE-B33F-47824A5FAFE7}'] + end; + + TArticulosFacturaProveedorController = class(TArticulosController, IArticulosFacturaProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosFacturaProveedorController } + +uses Controls, uIEditorElegirArticulosFacturasProveedor, uIEditorElegirArticulos; + +function TArticulosFacturaProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosFacturasProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosFacturaProveedor', IEditorElegirArticulosFacturasProveedor, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. 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 00000000..f5318529 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.pas @@ -0,0 +1,132 @@ +unit uDetallesFacturaProveedorController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesFacturaProveedor, uIDataModuleFacturasProveedor, + uBizContactos, uBizArticulos; + +type + IDetallesFacturaProveedorController = interface(IControllerDetallesArticulos) + ['{49F6199E-E031-42F5-AEA5-E70C3E3479A1}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaProveedor; AReferencia: String; AFecha: String); + end; + + TDetallesFacturaProveedorController = class(TControllerDetallesArticulos, IDetallesFacturaProveedorController) + private + FDataModule : IDataModuleFacturasProveedor; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); 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 Variants, uControllerDetallesDTO, uDataModuleFacturasProveedor, uArticulosFacturaProveedorController, + uControllerDetallesBase, Dialogs, SysUtils; + +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); + ShowMessage('Se han actualizado los descuentos para el Proveedor seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + try + AArticulos := (FArticulosController as IArticulosFacturaProveedorController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a esta factura de Proveedor', True); + Add(ADetalles, AArticulos); + 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; + +procedure TDetallesFacturaProveedorController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesFacturaProveedor) do + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FACTURA := IDCabecera; + Post + end; +end; + +constructor TDetallesFacturaProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasProveedor.Create(Nil); +end; + +destructor TDetallesFacturaProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesFacturaProveedorController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +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.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas new file mode 100644 index 00000000..4b37ddf3 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -0,0 +1,913 @@ +unit uFacturasProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasProveedor, + uProveedoresController, uDetallesFacturaProveedorController, uBizFacturasProveedor, + uBizAlbaranesProveedor; + +type + IFacturasProveedorController = interface(IObservador) + ['{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; + procedure Ver(AFactura : IBizFacturaProveedor); + procedure VerTodos(AFacturas: IBizFacturaProveedor); + function Nuevo : 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): 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); + procedure Print(AFactura : IBizFacturaProveedor); + + function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; + function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + end; + + TFacturasProveedorController = class(TObservador, IFacturasProveedorController) + private + FDataModule : IDataModuleFacturasProveedor; + FProveedorController : IProveedoresController; + FDetallesController : IDetallesFacturaProveedorController; + + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + + function GetDetallesController: IDetallesFacturaProveedorController; + procedure SetDetallesController(const Value: IDetallesFacturaProveedorController); + + procedure AsignarID(AFactura: IBizFacturaProveedor; const IDNuevo : Integer); + 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaProveedor): 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; +// function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaProveedor; + function Nuevo : IBizFacturaProveedor; + procedure Ver(AFactura : IBizFacturaProveedor); + procedure VerTodos(AFacturas: IBizFacturaProveedor); + function Duplicar(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + function GenerarAbono(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + procedure RecuperarProveedor(AFactura : IBizFacturaProveedor); + procedure Preview(AFactura : IBizFacturaProveedor); + procedure Print(AFactura : IBizFacturaProveedor); + + function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; + function ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasProveedorClient_Intf, + uBizContactos, uIEditorFacturasProveedor, uIEditorFacturaProveedor, + uDataModuleFacturasProveedor, uBizDetallesFacturaProveedor, uControllerDetallesBase, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uROTypes, + uAlbaranesProveedorController, schAlbaranesProveedorClient_Intf, uDetallesAlbaranProveedorController, + uBizDetallesAlbaranProveedor, + uBizPedidosProveedor, uPedidosProveedorController, uBizDetallesPedidoProveedor, + uRecibosProveedorController, uBizRecibosProveedor, + uFacturasProveedorReportController, DateUtils, Forms, Dialogs, + uFormasPagoController, uBizFormasPago; + +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 + 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; + 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 := 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 + 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; + 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 := 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(AFacturas: IBizFacturaProveedor; + AListaAlbaranes: IBizAlbaranProveedor): Boolean; +var + AFacturaActual : IBizFacturaProveedor; + AAlbaranesController : IAlbaranesProveedorController; + I: Integer; +begin + Result := False; + + // ATENCIÓN!!! 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 := 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 + // Busco si hay alguna factura ya hecha de ese Proveedor + AFacturaActual := NIL; + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasProveedorID_Proveedor, AListaAlbaranes.ID_Proveedor, []) then + AFacturaActual := AFacturas + else begin + // No hay factura de ese Proveedor. Creo una nueva + Anadir(AFacturas); + AAlbaranesController.RecuperarProveedor(AListaAlbaranes); + AFacturas.Proveedor := AListaAlbaranes.Proveedor; + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le añado los conceptos del albarán + AFacturaActual.Detalles.DataTable.Last; + // Añado el título + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Añado el contenido del albarán + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + +{En los albaranes a proveedor el porte es a nivel del artículo + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarán'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; +} + + // Añado el resumen + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; + Post; + end; + + // Añado una línea 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 albarán + AListaAlbaranes.Edit; + AListaAlbaranes.ID_FACTURA := AFacturaActual.ID; + AListaAlbaranes.Post; + AAlbaranesController.Guardar(AListaAlbaranes); + + AListaAlbaranes.Next; + end; + Result := True; + finally + AAlbaranesController := NIL; + HideHourglassCursor + end; +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; + +procedure TFacturasProveedorController.AsignarID(AFactura: IBizFacturaProveedor; const IDNuevo: Integer); +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if not Assigned(AFactura.Detalles) then + raise Exception.Create ('Detalles de factura no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(AFactura.Detalles, IDNuevo, AFactura.EsNuevo); + + if AFactura.EsNuevo then + begin + AFactura.Edit; + AFactura.ID := IDNuevo; + AFactura.Post; + end; +end; + +function TFacturasProveedorController.Buscar(const ID: Integer): IBizFacturaProveedor; +begin + Result := (FDataModule as IDataModuleFacturasProveedor).GetItem(ID); + FiltrarEmpresa(Result); +end; + +{ +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 comisión o asociadas a la comisión, + //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 están 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; +// showmessage(Result.DataTable.Where.Clause); +end; +} + +function TFacturasProveedorController.BuscarTodos: IBizFacturaProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TFacturasProveedorController.Create; +begin + 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; + +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + REFERENCIA := ''; //Para que se asigne una nueva + FECHA_FACTURA := DateOf(Now); + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TFacturasProveedorController.ValidarFactura(AFactura: IBizFacturaProveedor): Boolean; +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 validación + // cuando se generan facturas automáticamente. +{ (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 validación puede saltar cuando se generan facturas automáticamente + 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');} + + //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 "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + AFactura.Edit; + try + AFactura.USUARIO := dmUsuarios.LoginInfo.Usuario; + + 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; + ShowHourglassCursor; + try + RecuperarProveedor(AFactura); + CreateEditor('EditorFacturaProveedor', IEditorFacturaProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Factura := AFactura; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowModal; +end; + +procedure TFacturasProveedorController.VerTodos(AFacturas: IBizFacturaProveedor); +var + AEditor : IEditorFacturasProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorFacturasProveedor', IEditorFacturasProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Facturas := AFacturas; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +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); + try + with AEditor do + begin + Controller := Self; + Facturas := AFacturas; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := FacturasProveedoreSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +} +end; + +function TFacturasProveedorController.Eliminar(AFactura: IBizFacturaProveedor): Boolean; +begin + Result := 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; + + AFactura.Delete; + //Los recibos al tener un on delete cascade se eliminarán automáticamente + AFactura.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + 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 + AFactura.Edit; + try + AFactura.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AFactura.Post; + end; + 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); + CopyDataTable(AFacturasProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TFacturasProveedorController.FiltrarEmpresa(AFactura: IBizFacturaProveedor); +begin + if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_FacturasProveedorID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + 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; +var + IDNuevo : Integer; +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; + try + if (AFactura.EsNuevo) then + IDNuevo := FDataModule.GetNextID(AFactura.DataTable.LogicalName) + else + IDNuevo := AFactura.ID; + + AsignarID(AFactura, IDNuevo); + + AFactura.DataTable.ApplyUpdates; + + //Se generan los recibos automáticamente a partir de la forma de pago + GenerarRecibos(AFactura); + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFacturasProveedorController.Nuevo: IBizFacturaProveedor; +var + AFactura : IBizFacturaProveedor; +begin + AFactura := FDataModule.NewItem; + FiltrarEmpresa(AFactura); + AFactura.DataTable.Active := True; + AFactura.Insert; + Result := AFactura; +end; + +procedure TFacturasProveedorController.Preview(AFactura: IBizFacturaProveedor); +var + AReportController : IFacturasProveedorReportController; +begin + AReportController := TFacturasProveedorReportController.Create; + try + AReportController.Preview(AFactura.ID); + finally + AReportController := NIL; + end; +end; + +procedure TFacturasProveedorController.Print(AFactura: IBizFacturaProveedor); +var + AReportController : IFacturasProveedorReportController; +begin + AReportController := TFacturasProveedorReportController.Create; + try + AReportController.Print(AFactura.ID); + finally + AReportController := NIL; + end; +end; + +function TFacturasProveedorController.GenerarAbono(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; +begin + ShowHourglassCursor; + try + Result := Duplicar(AFactura); + //Añade 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; + i: Integer; +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'); + + ARecibosProveedorController := TRecibosProveedorController.Create; + //Eliminamos todos los recibos que tuviera la factura porque sabemos que todos + //estarán pendientes (solo permitiremos modificar y eliminar facturas pendientes, + //parcialmente pagadas o pagadas no + ARecibos := ARecibosProveedorController.BuscarTodosFactura(AFactura.ID); + ARecibosProveedorController.EliminarTodo(ARecibos); + + //Vamos a generar todos los recibos necesarios para la factura + With AFormaPago.Plazos.DataTable do + begin + i := 1; + First; + while not eof do + begin + ARecibos := ARecibosProveedorController.Nuevo; + ARecibos.Edit; + ARecibos.ID_FACTURA := AFactura.ID; + ARecibos.REFERENCIA := AFactura.REFERENCIA + ' - ' + IntToStr(i); + ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL * (AFormaPago.Plazos.PORCENTAJE / 100); + ARecibosProveedorController.Guardar(ARecibos); + Inc(i); + Next; + end; + 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.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas new file mode 100644 index 00000000..f1dfc43f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas @@ -0,0 +1,103 @@ +unit uFacturasProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasProveedorReport, + uClientesController, uDetallesFacturaProveedorController, uBizFacturasProveedor; + +type + IFacturasProveedorReportController = interface + ['{551F82DC-B8DC-482E-A20D-15003E845078}'] + procedure Preview(const AFacturaID : integer); + procedure Print(const AFacturaID : integer); + end; + + TFacturasProveedorReportController = class(TInterfacedObject, IFacturasProveedorReportController) + private + FDataModule : IDataModuleFacturasProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AFacturaID : integer); + procedure Print(const AFacturaID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorFacturasProveedorPreview, + uEditorPreview, uDataModuleFacturasProveedor, uEditorBase, cxControls; + +{ TFacturasProveedorReportController } + +constructor TFacturasProveedorReportController.Create; +begin + 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 : integer); +var + AStream: Binary; + AEditor : IEditorFacturasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasProveedorPreview', IEditorFacturasProveedorPreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TFacturasProveedorReportController.Print(const AFacturaID : integer); +var + AStream: Binary; + AEditor : IEditorFacturasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasProveedorPreview', IEditorFacturasProveedorPreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..95da152f --- /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.dpk b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk new file mode 100644 index 00000000..0350aad4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk @@ -0,0 +1,40 @@ +package FacturasProveedor_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, + dbrtl, + dsnap, + vcldb, + vcl, + adortl, + Contactos_model, + FacturasProveedor_model; + +contains + uDataModuleFacturasProveedor in 'uDataModuleFacturasProveedor.pas' {DataModuleFacturasProveedor: TDAClientDataModule}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm new file mode 100644 index 00000000..b8f24434 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm @@ -0,0 +1,882 @@ +object DataModuleFacturasProveedor: TDataModuleFacturasProveedor + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvFacturasProveedor' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_FacturasProveedor: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FacturasProveedor_ID_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FacturasCliente_ID_FORMA_PAGO' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Con R.E.?' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de vencimiento' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasProveedor' + IndexDefs = <> + Left = 224 + Top = 160 + end + object ds_FacturasProveedor: TDADataSource + DataTable = tbl_FacturasProveedor + Left = 224 + Top = 104 + end + object tbl_FacturasProveedor_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FacturasProveedor_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 = 400 + Top = 160 + end + object ds_FacturasProveedor_Detalles: TDADataSource + DataTable = tbl_FacturasProveedor_Detalles + Left = 400 + Top = 104 + 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 00000000..fa334d3d --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas @@ -0,0 +1,150 @@ +unit uDataModuleFacturasProveedor; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + + uIDataModuleFacturasProveedor, uBizFacturasProveedor, uBizDetallesFacturaProveedor, + uDADesigntimeCall, uIDataModuleFacturasProveedorReport; + +type + TDataModuleFacturasProveedor = class(TDAClientDataModule, IDataModuleFacturasProveedor, IDataModuleFacturasProveedorReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_FacturasProveedor: TDACDSDataTable; + ds_FacturasProveedor: TDADataSource; + tbl_FacturasProveedor_Detalles: TDACDSDataTable; + ds_FacturasProveedor_Detalles: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesFacturaProveedor; + public + function GetItems : IBizFacturaProveedor; + function GetItem(const ID : Integer) : IBizFacturaProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizFacturaProveedor; + + // Report + function GetReport(const AFacturaID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schFacturasProveedorClient_Intf, uBizContactos; + +{ TdmFacturasProveedor } + +procedure TDataModuleFacturasProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFacturasProveedor.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_FacturasProveedor then + aGeneratorName := 'GEN_FACTURAS_PROVEEDOR_ID'; + + if DataSetName = nme_FacturasProveedor_Detalles then + aGeneratorName := 'GEN_FACTURA_PROV_DETALLES_ID'; + + Result := (RORemoteService as IsrvFacturasProveedor).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleFacturasProveedor.GetReport(const AFacturaID: Integer): Binary; +begin +// Result := (RORemoteService as IsrvFacturasProveedor).GenerateReport(AFacturaID) +end; + +function TDataModuleFacturasProveedor.NewItem: IBizFacturaProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleFacturasProveedor._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleFacturasProveedor._GetDetalles: IBizDetallesFacturaProveedor; +var + ADetalles : TDACDSDataTable; +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.GetItem(const ID: Integer): IBizFacturaProveedor; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasProveedorID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasProveedor.GetItems: IBizFacturaProveedor; +var + AFactura : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AFactura := _CloneDataTable(tbl_FacturasProveedor); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AFactura.FieldByName(fld_FacturasProveedorREFERENCIA).ServerAutoRefresh := TRUE; + AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_PROVEEDOR; + + with TBizFacturaProveedor(AFactura.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + 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 00000000..f8a84b08 --- /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 00000000..c8f28340 --- /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/Model/Data/uIDataModuleFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas new file mode 100644 index 00000000..eec61a03 --- /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 GetItems: IBizFacturaProveedor; + function GetItem(const ID : Integer) : IBizFacturaProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizFacturaProveedor; + end; + +implementation + +end. 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 00000000..5dc50943 --- /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: Integer): 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 00000000..a6f02f0a --- /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.dpk b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk new file mode 100644 index 00000000..fb18d45f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk @@ -0,0 +1,59 @@ +package FacturasProveedor_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} +{%TogetherDiagram 'ModelSupport_FacturasProveedor_model\default.txaPackage'} + +requires + rtl, + dbrtl, + vcl, + DataAbstract_D10, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + Base, + Empresas_controller, + Usuarios, + Contactos_model, + TiposIVA_model, + TiposIVA_controller; + +contains + uBizFacturasProveedor in 'uBizFacturasProveedor.pas', + uIDataModuleFacturasProveedor in 'Data\uIDataModuleFacturasProveedor.pas', + uBizDetallesFacturaProveedor in 'uBizDetallesFacturaProveedor.pas', + uIDataModuleFacturasProveedorReport in 'Data\uIDataModuleFacturasProveedorReport.pas', + schFacturasProveedorClient_Intf in 'schFacturasProveedorClient_Intf.pas', + schFacturasProveedorServer_Intf in 'schFacturasProveedorServer_Intf.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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/ModelSupport_FacturasProveedor_model/FacturasProveedor_model.prjconfig b/Source/Modulos/Facturas de proveedor/Model/ModelSupport_FacturasProveedor_model/FacturasProveedor_model.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/ModelSupport_FacturasProveedor_model/FacturasProveedor_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/Model/ModelSupport_FacturasProveedor_model/default.txaPackage b/Source/Modulos/Facturas de proveedor/Model/ModelSupport_FacturasProveedor_model/default.txaPackage new file mode 100644 index 00000000..e69de29b 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 00000000..94eb495b --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -0,0 +1,1908 @@ +unit schFacturasProveedorClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_darReferencia = '{5A31B310-B21D-468B-963E-0BB3D56FF098}'; + RID_FacturasProveedor = '{7E2B16C4-976C-4809-9E04-2B6B5C91AF87}'; + RID_FacturasProveedor_Detalles = '{8A0BE5E9-157E-4CCC-8EF1-A29CDBA4E28A}'; + RID_FacturasProveedor_Detalles_Refresh = '{0DFFA036-18F8-4957-9991-669FC8EB4F42}'; + RID_FacturasProveedor_Refresh = '{3FA04195-2172-40A8-915E-9B961949C107}'; + + { Data table names } + nme_darReferencia = 'darReferencia'; + nme_FacturasProveedor = 'FacturasProveedor'; + nme_FacturasProveedor_Detalles = 'FacturasProveedor_Detalles'; + nme_FacturasProveedor_Detalles_Refresh = 'FacturasProveedor_Detalles_Refresh'; + nme_FacturasProveedor_Refresh = 'FacturasProveedor_Refresh'; + + { darReferencia fields } + fld_darReferenciaVALOR = 'VALOR'; + + { darReferencia field indexes } + idx_darReferenciaVALOR = 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_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_FacturasProveedorFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + + { 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_FacturasProveedorSITUACION = 6; + idx_FacturasProveedorBASE_IMPONIBLE = 7; + idx_FacturasProveedorDESCUENTO = 8; + idx_FacturasProveedorIMPORTE_DESCUENTO = 9; + idx_FacturasProveedorIVA = 10; + idx_FacturasProveedorIMPORTE_IVA = 11; + idx_FacturasProveedorRE = 12; + idx_FacturasProveedorIMPORTE_RE = 13; + idx_FacturasProveedorIMPORTE_TOTAL = 14; + idx_FacturasProveedorOBSERVACIONES = 15; + idx_FacturasProveedorID_PROVEEDOR = 16; + idx_FacturasProveedorNIF_CIF = 17; + idx_FacturasProveedorNOMBRE = 18; + idx_FacturasProveedorCALLE = 19; + idx_FacturasProveedorPOBLACION = 20; + idx_FacturasProveedorPROVINCIA = 21; + idx_FacturasProveedorCODIGO_POSTAL = 22; + idx_FacturasProveedorFECHA_ALTA = 23; + idx_FacturasProveedorFECHA_MODIFICACION = 24; + idx_FacturasProveedorUSUARIO = 25; + idx_FacturasProveedorID_FORMA_PAGO = 26; + idx_FacturasProveedorRECARGO_EQUIVALENCIA = 27; + idx_FacturasProveedorID_TIPO_IVA = 28; + idx_FacturasProveedorIMPORTE_NETO = 29; + idx_FacturasProveedorIMPORTE_PORTE = 30; + idx_FacturasProveedorFECHA_VENCIMIENTO = 31; + + { 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_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_FacturasProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_FacturasProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasProveedor_DetallesREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { 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_DetallesIMPORTE_UNIDAD = 6; + idx_FacturasProveedor_DetallesDESCUENTO = 7; + idx_FacturasProveedor_DetallesIMPORTE_TOTAL = 8; + idx_FacturasProveedor_DetallesID_ARTICULO = 9; + idx_FacturasProveedor_DetallesVISIBLE = 10; + idx_FacturasProveedor_DetallesIMPORTE_PORTE = 11; + idx_FacturasProveedor_DetallesREFERENCIA = 12; + idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 13; + + { FacturasProveedor_Detalles_Refresh fields } + fld_FacturasProveedor_Detalles_RefreshID = 'ID'; + fld_FacturasProveedor_Detalles_RefreshID_FACTURA = 'ID_FACTURA'; + fld_FacturasProveedor_Detalles_RefreshPOSICION = 'POSICION'; + fld_FacturasProveedor_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_FacturasProveedor_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_FacturasProveedor_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasProveedor_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedor_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasProveedor_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasProveedor_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { FacturasProveedor_Detalles_Refresh field indexes } + idx_FacturasProveedor_Detalles_RefreshID = 0; + idx_FacturasProveedor_Detalles_RefreshID_FACTURA = 1; + idx_FacturasProveedor_Detalles_RefreshPOSICION = 2; + idx_FacturasProveedor_Detalles_RefreshTIPO_DETALLE = 3; + idx_FacturasProveedor_Detalles_RefreshCONCEPTO = 4; + idx_FacturasProveedor_Detalles_RefreshCANTIDAD = 5; + idx_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD = 6; + idx_FacturasProveedor_Detalles_RefreshDESCUENTO = 7; + idx_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL = 8; + idx_FacturasProveedor_Detalles_RefreshID_ARTICULO = 9; + idx_FacturasProveedor_Detalles_RefreshVISIBLE = 10; + idx_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE = 11; + idx_FacturasProveedor_Detalles_RefreshREFERENCIA = 12; + idx_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { FacturasProveedor_Refresh fields } + fld_FacturasProveedor_RefreshID = 'ID'; + fld_FacturasProveedor_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_FacturasProveedor_RefreshREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedor_RefreshTIPO = 'TIPO'; + fld_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_FacturasProveedor_RefreshFECHA_FACTURA = 'FECHA_FACTURA'; + fld_FacturasProveedor_RefreshSITUACION = 'SITUACION'; + fld_FacturasProveedor_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_FacturasProveedor_RefreshDESCUENTO = 'DESCUENTO'; + fld_FacturasProveedor_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_FacturasProveedor_RefreshIVA = 'IVA'; + fld_FacturasProveedor_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_FacturasProveedor_RefreshRE = 'RE'; + fld_FacturasProveedor_RefreshIMPORTE_RE = 'IMPORTE_RE'; + fld_FacturasProveedor_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedor_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_FacturasProveedor_RefreshID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_FacturasProveedor_RefreshNIF_CIF = 'NIF_CIF'; + fld_FacturasProveedor_RefreshNOMBRE = 'NOMBRE'; + fld_FacturasProveedor_RefreshCALLE = 'CALLE'; + fld_FacturasProveedor_RefreshPOBLACION = 'POBLACION'; + fld_FacturasProveedor_RefreshPROVINCIA = 'PROVINCIA'; + fld_FacturasProveedor_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_FacturasProveedor_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_FacturasProveedor_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_FacturasProveedor_RefreshUSUARIO = 'USUARIO'; + fld_FacturasProveedor_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_FacturasProveedor_RefreshID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_FacturasProveedor_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_FacturasProveedor_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasProveedor_RefreshFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + + { FacturasProveedor_Refresh field indexes } + idx_FacturasProveedor_RefreshID = 0; + idx_FacturasProveedor_RefreshID_EMPRESA = 1; + idx_FacturasProveedor_RefreshREFERENCIA = 2; + idx_FacturasProveedor_RefreshTIPO = 3; + idx_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR = 4; + idx_FacturasProveedor_RefreshFECHA_FACTURA = 5; + idx_FacturasProveedor_RefreshSITUACION = 6; + idx_FacturasProveedor_RefreshBASE_IMPONIBLE = 7; + idx_FacturasProveedor_RefreshDESCUENTO = 8; + idx_FacturasProveedor_RefreshIMPORTE_DESCUENTO = 9; + idx_FacturasProveedor_RefreshIVA = 10; + idx_FacturasProveedor_RefreshIMPORTE_IVA = 11; + idx_FacturasProveedor_RefreshRE = 12; + idx_FacturasProveedor_RefreshIMPORTE_RE = 13; + idx_FacturasProveedor_RefreshIMPORTE_TOTAL = 14; + idx_FacturasProveedor_RefreshOBSERVACIONES = 15; + idx_FacturasProveedor_RefreshID_PROVEEDOR = 16; + idx_FacturasProveedor_RefreshNIF_CIF = 17; + idx_FacturasProveedor_RefreshNOMBRE = 18; + idx_FacturasProveedor_RefreshCALLE = 19; + idx_FacturasProveedor_RefreshPOBLACION = 20; + idx_FacturasProveedor_RefreshPROVINCIA = 21; + idx_FacturasProveedor_RefreshCODIGO_POSTAL = 22; + idx_FacturasProveedor_RefreshFECHA_ALTA = 23; + idx_FacturasProveedor_RefreshFECHA_MODIFICACION = 24; + idx_FacturasProveedor_RefreshUSUARIO = 25; + idx_FacturasProveedor_RefreshID_FORMA_PAGO = 26; + idx_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA = 27; + idx_FacturasProveedor_RefreshID_TIPO_IVA = 28; + idx_FacturasProveedor_RefreshIMPORTE_NETO = 29; + idx_FacturasProveedor_RefreshIMPORTE_PORTE = 30; + idx_FacturasProveedor_RefreshFECHA_VENCIMIENTO = 31; + +type + { IdarReferencia } + IdarReferencia = interface(IDAStronglyTypedDataTable) + ['{65EFF80E-72D6-4702-8DE2-EAB9E67C2CED}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TdarReferenciaDataTableRules } + TdarReferenciaDataTableRules = class(TDADataTableRules, IdarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor } + IFacturasProveedor = interface(IDAStronglyTypedDataTable) + ['{02E381CF-8B87-4CAC-BBB3-BE1303EFC6EA}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + end; + + { TFacturasProveedorDataTableRules } + TFacturasProveedorDataTableRules = class(TDADataTableRules, IFacturasProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Detalles } + IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{09638FB4-2429-47C7-BEE6-695CCA2B7429}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TFacturasProveedor_DetallesDataTableRules } + TFacturasProveedor_DetallesDataTableRules = class(TDADataTableRules, IFacturasProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Detalles_Refresh } + IFacturasProveedor_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{34CAF884-E288-4691-BBB0-1FB65C392944}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TFacturasProveedor_Detalles_RefreshDataTableRules } + TFacturasProveedor_Detalles_RefreshDataTableRules = class(TDADataTableRules, IFacturasProveedor_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Refresh } + IFacturasProveedor_Refresh = interface(IDAStronglyTypedDataTable) + ['{9AC32D5C-9DDF-471B-95AA-FFC958A99C41}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + end; + + { TFacturasProveedor_RefreshDataTableRules } + TFacturasProveedor_RefreshDataTableRules = class(TDADataTableRules, IFacturasProveedor_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property RE: Float read GetREValue write SetREValue; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TdarReferenciaDataTableRules } +constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TdarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TdarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_darReferenciaVALOR].AsString; +end; + +procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; +end; + + +{ TFacturasProveedorDataTableRules } +constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasProveedorDataTableRules.Destroy; +begin + inherited; +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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].AsString := aValue.Text; +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.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.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.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.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.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.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.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_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.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.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.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].AsInteger := aValue; +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.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_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.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; + + +{ 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.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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].AsInteger := aValue; +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.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.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.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.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].AsInteger := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].AsFloat; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].AsFloat := aValue; +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.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; + + +{ TFacturasProveedor_Detalles_RefreshDataTableRules } +constructor TFacturasProveedor_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasProveedor_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID_FACTURA].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasProveedor_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TFacturasProveedor_RefreshDataTableRules } +constructor TFacturasProveedor_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasProveedor_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshID].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshID].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshID_EMPRESA].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshREFERENCIA].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshREFERENCIA].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshTIPO].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshTIPO].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_FACTURA].AsDateTime; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_FACTURA].AsDateTime := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshSITUACION].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshSITUACION].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshDESCUENTO].AsFloat; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIVA].AsFloat; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIVA].AsFloat := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetREValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshRE].AsFloat; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshRE].AsFloat := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_REValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_RE].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_REValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_RE].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_FacturasProveedor_RefreshOBSERVACIONES].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshID_PROVEEDOR].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshID_PROVEEDOR].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshNIF_CIF].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshNIF_CIF].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshNOMBRE].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshNOMBRE].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshCALLE].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshCALLE].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshPOBLACION].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshPOBLACION].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshPROVINCIA].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshPROVINCIA].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshUSUARIO].AsString; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshUSUARIO].AsString := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshID_FORMA_PAGO].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshID_TIPO_IVA].AsInteger; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshID_TIPO_IVA].AsInteger := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasProveedor_RefreshDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TFacturasProveedor_RefreshDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedor_RefreshFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor_Detalles, TFacturasProveedor_DetallesDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor_Detalles_Refresh, TFacturasProveedor_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor_Refresh, TFacturasProveedor_RefreshDataTableRules); + +end. 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 00000000..fbb4b71c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -0,0 +1,2251 @@ +unit schFacturasProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_darReferenciaDelta = '{9811D236-BBAF-41FA-BA7C-27CFA776F2BA}'; + RID_FacturasProveedorDelta = '{D0D34618-4ADB-4D35-96BF-AB713867C946}'; + RID_FacturasProveedor_DetallesDelta = '{EB4106FB-07FA-4683-9055-D44215CB3A30}'; + RID_FacturasProveedor_Detalles_RefreshDelta = '{DF491E40-B1CA-4976-9167-E3B022F545D3}'; + RID_FacturasProveedor_RefreshDelta = '{F4B987F7-529B-43A3-9264-157ACC3C6BAC}'; + +type + { IdarReferenciaDelta } + IdarReferenciaDelta = interface(IdarReferencia) + ['{9811D236-BBAF-41FA-BA7C-27CFA776F2BA}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TdarReferenciaBusinessProcessorRules } + TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedorDelta } + IFacturasProveedorDelta = interface(IFacturasProveedor) + ['{D0D34618-4ADB-4D35-96BF-AB713867C946}'] + { 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 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 : Integer; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + + { 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 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 : Integer 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 OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + end; + + { TFacturasProveedorBusinessProcessorRules } + TFacturasProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor, IFacturasProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + function GetOldREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property RE : Float read GetREValue write SetREValue; + property OldRE : Float read GetOldREValue; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_DetallesDelta } + IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) + ['{EB4106FB-07FA-4683-9055-D44215CB3A30}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_ARTICULOValue : Integer; + function GetOldVISIBLEValue : Integer; + function GetOldIMPORTE_PORTEValue : Float; + 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 : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TFacturasProveedor_DetallesBusinessProcessorRules } + TFacturasProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor_Detalles, IFacturasProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Detalles_RefreshDelta } + IFacturasProveedor_Detalles_RefreshDelta = interface(IFacturasProveedor_Detalles_Refresh) + ['{DF491E40-B1CA-4976-9167-E3B022F545D3}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_ARTICULOValue : Integer; + function GetOldVISIBLEValue : Integer; + function GetOldIMPORTE_PORTEValue : Float; + 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 : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TFacturasProveedor_Detalles_RefreshBusinessProcessorRules } + TFacturasProveedor_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor_Detalles_Refresh, IFacturasProveedor_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_RefreshDelta } + IFacturasProveedor_RefreshDelta = interface(IFacturasProveedor_Refresh) + ['{F4B987F7-529B-43A3-9264-157ACC3C6BAC}'] + { 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 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 : Integer; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + + { 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 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 : Integer 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 OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + end; + + { TFacturasProveedor_RefreshBusinessProcessorRules } + TFacturasProveedor_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor_Refresh, IFacturasProveedor_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetREValue: Float; virtual; + function GetOldREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNIF_CIFValue: String; virtual; + function GetOldNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property RE : Float read GetREValue write SetREValue; + property OldRE : Float read GetOldREValue; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TdarReferenciaBusinessProcessorRules } +constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TdarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; +end; + +function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; +end; + +procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; +end; + + +{ TFacturasProveedorBusinessProcessorRules } +constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_EMPRESA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorTIPO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_FACTURA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorSITUACION]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorBASE_IMPONIBLE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDESCUENTO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIVA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_IVA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_RE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_TOTAL]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorOBSERVACIONES]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES] := aValue.Text; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_PROVEEDOR]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNIF_CIF]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNOMBRE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCALLE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPOBLACION]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPROVINCIA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGO_POSTAL]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_ALTA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_MODIFICACION]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorUSUARIO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_FORMA_PAGO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TFacturasProveedorBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := 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; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_NETO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_PORTE]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE] := aValue; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_FACTURA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := 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; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesPOSICION]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := 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; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCONCEPTO]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCANTIDAD]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := 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; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesDESCUENTO]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := 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; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_ARTICULO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := 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; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesVISIBLE]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA]; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA] := aValue; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + + +{ TFacturasProveedor_Detalles_RefreshBusinessProcessorRules } +constructor TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshID]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID_FACTURA]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshID_FACTURA]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID_FACTURA] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshPOSICION]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshPOSICION]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshPOSICION] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshCONCEPTO]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshCONCEPTO]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshCANTIDAD]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshCANTIDAD]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshDESCUENTO]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshDESCUENTO]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID_ARTICULO]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshID_ARTICULO]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshVISIBLE]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshVISIBLE]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshVISIBLE] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TFacturasProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TFacturasProveedor_RefreshBusinessProcessorRules } +constructor TFacturasProveedor_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasProveedor_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshID]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_EMPRESA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshID_EMPRESA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_EMPRESA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshREFERENCIA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshREFERENCIA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshREFERENCIA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshTIPO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshTIPO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshTIPO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_FACTURA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshFECHA_FACTURA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_FACTURA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshSITUACION]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshSITUACION]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshSITUACION] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshBASE_IMPONIBLE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshBASE_IMPONIBLE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshDESCUENTO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshDESCUENTO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshDESCUENTO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIVA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIVA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIVA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_IVA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_IVA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_IVA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshRE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshRE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshRE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_RE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_RE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_RE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_TOTAL]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshOBSERVACIONES]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshOBSERVACIONES]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_PROVEEDOR]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshID_PROVEEDOR]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_PROVEEDOR] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshNIF_CIF]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshNIF_CIF]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshNIF_CIF] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshNOMBRE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshNOMBRE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshNOMBRE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshCALLE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshCALLE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshCALLE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshPOBLACION]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshPOBLACION]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshPOBLACION] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshPROVINCIA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshPROVINCIA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshPROVINCIA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshCODIGO_POSTAL]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshCODIGO_POSTAL]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshCODIGO_POSTAL] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_ALTA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshFECHA_ALTA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_ALTA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_MODIFICACION]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshFECHA_MODIFICACION]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshUSUARIO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshUSUARIO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshUSUARIO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_FORMA_PAGO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshID_FORMA_PAGO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_FORMA_PAGO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshRECARGO_EQUIVALENCIA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_TIPO_IVA]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshID_TIPO_IVA]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshID_TIPO_IVA] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_NETO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_NETO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_NETO] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_PORTE]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshIMPORTE_PORTE]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshIMPORTE_PORTE] := aValue; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_VENCIMIENTO]; +end; + +function TFacturasProveedor_RefreshBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_RefreshFECHA_VENCIMIENTO]; +end; + +procedure TFacturasProveedor_RefreshBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_RefreshFECHA_VENCIMIENTO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedor_DetallesDelta, TFacturasProveedor_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedor_Detalles_RefreshDelta, TFacturasProveedor_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedor_RefreshDelta, TFacturasProveedor_RefreshBusinessProcessorRules); + +end. 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 00000000..2b6573a8 --- /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) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +uses + SysUtils; + +{ TBizDetallesFacturaProveedor } + +constructor TBizDetallesFacturaProveedor.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesFacturaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_FACTURA_PROVEEDOR, TBizDetallesFacturaProveedor); + +end. 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 00000000..729fb9d8 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas @@ -0,0 +1,325 @@ +unit uBizFacturasProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasProveedorClient_Intf, + uBizContactos, uBizDetallesFacturaProveedor, 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 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; + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + + function GetDetalles: IBizDetallesFacturaProveedor; + procedure SetDetalles(Value: IBizDetallesFacturaProveedor); + + 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 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, Dialogs; + +{ 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; +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; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizFacturaProveedor.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizFacturaProveedor.Destroy; +begin + FProveedor := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_FACTURA := DateOf(Now); + ID_PROVEEDOR := ID_NULO; + TIPO := CTE_TIPO_FACTURA; +// IVA := dmUsuarios.EmpresaActual.IVA; + RE := 0; +end; + +procedure TBizFacturaProveedor.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresFacturaNueva; +end; + +procedure TBizFacturaProveedor.RECARGO_EQUIVALENCIAOnChange( + Sender: TDACustomField); +begin + AsignarTipoIVA(ID_TIPO_IVA); +end; + +procedure TBizFacturaProveedor.REOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +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; + ID_FORMA_PAGO := FProveedor.ID_FORMA_PAGO; + 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.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas new file mode 100644 index 00000000..2014786d --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas @@ -0,0 +1,78 @@ +unit uBizFacturasProveedorServer; + +interface + +uses + schFacturasProveedorServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_FACTURAS_PROVEEDOR = 'Server.FacturasProveedor'; + REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; + +type + TBizFacturasProveedorServer = class(TFacturasProveedorBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schFacturasProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizFacturasProveedorServer } + +procedure TBizFacturasProveedorServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_FacturasProveedorREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_FacturasProveedorREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_PROVEEDOR, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName('VALOR').AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_FACTURAS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_PROVEEDOR, TBizFacturasProveedorServer); + +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 00000000..0ce4590c --- /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.dpk b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk new file mode 100644 index 00000000..17b0a563 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk @@ -0,0 +1,43 @@ +package FacturasProveedor_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + Familias_controller, + FacturasProveedor_view, + FacturasProveedor_controller; + +contains + uPluginFacturasProveedor in 'uPluginFacturasProveedor.pas' {PluginFacturasProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm new file mode 100644 index 00000000..f4520c9e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm @@ -0,0 +1,135 @@ +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 N1: TMenuItem + Tag = 11999 + Caption = '-' + end + object Facturasdeproveedor1: TMenuItem + Tag = 105 + 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 00000000..7ca5aa11 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.pas @@ -0,0 +1,75 @@ +unit uPluginFacturasProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFacturasProveedor = interface(IInterface) + ['{271C68BC-F755-46B1-AEFF-769AC5172815}'] + end; + + TPluginFacturasProveedor = class(TModuleController, IMCFacturasProveedor) + actFacturasProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + Facturasdeproveedor1: TMenuItem; + N1: TMenuItem; + procedure actFacturasProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + 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; + uFacturasProveedorViewRegister.RegisterViews; +end; + +destructor TPluginFacturasProveedor.Destroy; +begin + uFacturasProveedorViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginFacturasProveedor); + +finalization + UnRegisterModuleClass(TPluginFacturasProveedor); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasCliente_Server.dfm new file mode 100644 index 00000000..cebad1f2 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasCliente_Server.dfm @@ -0,0 +1,1300 @@ +object RptFacturasCliente: TRptFacturasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_FacturaCliente + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_DetallesFacturaCliente + Left = 344 + Top = 72 + end + object tbl_FacturaCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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_DetallesFacturaCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '12' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'SELECT'#10' V_FACTURAS_CLIENTE.ID, V_FACTURAS_CLIENTE.REFERENCIA,' + + ' V_FACTURAS_CLIENTE.FECHA_FACTURA,'#10' V_FACTURAS_CLIENTE.BASE_I' + + 'MPONIBLE, V_FACTURAS_CLIENTE.DESCUENTO, V_FACTURAS_CLIENTE.IMPOR' + + 'TE_DESCUENTO,'#10' V_FACTURAS_CLIENTE.IVA, V_FACTURAS_CLIENTE.IMP' + + 'ORTE_IVA,'#10' V_FACTURAS_CLIENTE.RE, V_FACTURAS_CLIENTE.IMPORTE_' + + 'RE,'#10' V_FACTURAS_CLIENTE.IMPORTE_TOTAL,'#10' V_FACTURAS_CLIENTE' + + '.OBSERVACIONES, FORMAS_PAGO.DESCRIPCION AS FORMA_PAGO, V_FACTURA' + + 'S_CLIENTE.ID_CLIENTE,'#10' V_FACTURAS_CLIENTE.NIF_CIF, V_FACTURAS' + + '_CLIENTE.NOMBRE, V_FACTURAS_CLIENTE.CALLE,'#10' V_FACTURAS_CLIENT' + + 'E.PROVINCIA, V_FACTURAS_CLIENTE.CODIGO_POSTAL, V_FACTURAS_CLIENT' + + 'E.POBLACION,'#10#10' ID_EMPRESA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRES' + + 'A, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, E' + + 'MPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA a' + + 's PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMP' + + 'RESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, E' + + 'MPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERC' + + 'ANTIL, EMPRESAS.LOGOTIPO'#10#10'FROM V_FACTURAS_CLIENTE'#10'LEFT JOIN EMPR' + + 'ESAS ON EMPRESAS.ID = ID_EMPRESA'#10'LEFT JOIN FORMAS_PAGO ON (FORMA' + + 'S_PAGO.ID = V_FACTURAS_CLIENTE.ID_FORMA_PAGO)'#10'WHERE V_FACTURAS_C' + + 'LIENTE.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + 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 + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end> + end> + Name = 'InformeFacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '13' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'SELECT'#10' ID, ID_FACTURA, POSICION, TIPO_DETALLE, CONCEPTO, CAN' + + 'TIDAD,'#10' IMPORTE_UNIDAD, DESCUENTO, IMPORTE_TOTAL, VISIBLE'#10'FRO' + + 'M FACTURAS_CLIENTE_DETALLES'#10'WHERE ID_FACTURA = :ID_FACTURA'#10'ORDER' + + ' BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + end> + end> + Name = 'InformeFacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CONTRATO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39164.767996053240000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' DatosCliente.Lines.Clear;' + ' DatosCliente.Lines.Add();' + '' + ' if ( <> '#39#39')' + ' or ( <> '#39#39') then' + + ' DatosCliente.Lines.Add( + '#39' ' + + #39' + );' + 'end;' + '' + 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' BandaDetalles.StartNewPage := False;' + ' BandaDetalles.Visible := True;' + ' MemPrecio.Style := '#39'Concepto normal'#39';' + ' MemCantidad.Style := '#39'Concepto normal'#39';' + ' MemImpTotal.Style := '#39'Concepto normal'#39';' + ' RichConcepto.Visible := True;' + '' + ' case of' + ' '#39'Salto'#39': begin' + ' BandaDetalles.StartNewPage := True;' + ' RichConcepto.Visible := False;' + ' end;' + ' '#39'Titulo'#39': begin' + ' MemPrecio.Style := '#39'Concepto titulo'#39';' + ' MemCantidad.Style := '#39'Concepto titulo'#39';' + ' MemImpTotal.Style := '#39'Concepto titulo'#39';' + ' end;' + ' '#39'Concepto'#39': begin' + ' //' + ' end;' + ' '#39'Subtotal'#39': begin' + ' MemPrecio.Style := '#39'Concepto subtotal'#39';' + ' MemCantidad.Style := '#39'Concepto subtotal'#39';' + ' MemImpTotal.Style := '#39'Concepto subtotal'#39';' + ' end;' + ' '#39'Descuento'#39': begin' + ' BandaDetalles.Visible := False;' + ' RichConcepto.Color := clNone;' + ' end;' + ' end;' + '' + ' RichConcepto.Color := MemImpTotal.Color;' + ' RichConcepto.Frame := MemImpTotal.Frame;' + 'end;' + '' + '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 Memo15OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' Memo15.Lines.Clear;' + ' if (StrToFloat() < 0) then' + ' Memo15.Lines.Add('#39'ABONO'#39')' + ' else' + ' Memo15.Lines.Add('#39'FACTURA'#39')' + 'end;' + '' + 'procedure Memo20OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (StrToFloat() = 0) then' + ' begin' + ' Memo20.Lines.Clear;' + ' Memo28.Lines.Clear;' + ' Memo21.Lines.Clear;' + ' Memo29.Lines.Clear;' + ' end;' + '' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + 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/Facturas de proveedor/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasCliente_Server.pas new file mode 100644 index 00000000..c7aab7ae --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasCliente_Server.pas @@ -0,0 +1,93 @@ +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; + +type + TRptFacturasCliente = class(TDataModule) + DADataCabecera: TDADataSource; + DADataDetalles: TDADataSource; + tbl_FacturaCliente: TDACDSDataTable; + tbl_DetallesFacturaCliente: 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); + private + FConnection: IDAConnection; + public + function GenerarFactura(const AFacturaID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schFacturasClienteClient_Intf; + +const + rptFacturaCliente = 'InfFacturaCliente.fr3'; + + { Dataset names for schReport } + ds_InformeFacturasCliente = 'InformeFacturasCliente'; + ds_InformeFacturasCliente_Detalles = 'InformeFacturasCliente_Detalles'; + + +{ TRptFacturasCliente } + + +procedure TRptFacturasCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptFacturasCliente.GenerarFactura(const AFacturaID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeFacturasCliente, ['ID'], [AFacturaID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Detalles, ['ID_FACTURA'], [AFacturaID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_FacturaCliente, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_DetallesFacturaCliente, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptFacturaCliente, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..2b1fcd70 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -0,0 +1,2833 @@ +object srvFacturasProveedor: TsrvFacturasProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schFacturasProveedor + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 180 + Width = 386 + object schFacturasProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + + 'ESA = :EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'darReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, REFERENCIA, TIPO, REFERENCIA_PROVEED' + + 'OR, FECHA_FACTURA, SITUACION, BASE_IMPONIBLE,'#10' DESCUENTO, IMP' + + 'ORTE_DESCUENTO, IVA, IMPORTE_IVA, RE, IMPORTE_RE,'#10' IMPORTE_TO' + + 'TAL, OBSERVACIONES, ID_PROVEEDOR, NIF_CIF, NOMBRE, CALLE,'#10' PO' + + 'BLACION, PROVINCIA, CODIGO_POSTAL, FECHA_ALTA, FECHA_MODIFICACIO' + + 'N,'#10' USUARIO, ID_FORMA_PAGO, RECARGO_EQUIVALENCIA, ID_TIPO_IVA' + + ','#10' IMPORTE_NETO, IMPORTE_PORTE'#10' FROM'#10' V_FACTURAS_PROVEEDO' + + 'R' + 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_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 = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'FacturasProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, FACTURAS_PROVEEDOR_DETALL' + + 'ES.IMPORTE_TOTAL,'#10' FACTURAS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' ' + + 'FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, FACTURAS_PROVEEDOR_DETA' + + 'LLES.DESCUENTO,'#10' FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ' + + ' ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA' + + '_PROVEEDOR'#10#10'FROM FACTURAS_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS' + + ' ON FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE' + + ' FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA = :ID_FACTURA'#10'ORDER BY P' + + 'OSICION;' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'FacturasProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, FACTURAS_PROVEEDOR_DETALL' + + 'ES.IMPORTE_TOTAL,'#10' FACTURAS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' ' + + 'FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, FACTURAS_PROVEEDOR_DETA' + + 'LLES.DESCUENTO,'#10' FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ' + + ' ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA' + + '_PROVEEDOR'#10#10'FROM FACTURAS_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS' + + ' ON FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE' + + ' FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA = :ID_FACTURA'#10'AND FACTUR' + + 'AS_PROVEEDOR_DETALLES.ID = :ID'#10'ORDER BY POSICION;' + 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 = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'FacturasProveedor_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_Refresh_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_Refresh_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_Refresh_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_Refresh_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Detalles_Refresh_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, REFERENCIA, TIPO, REFERENCIA_PROVEED' + + 'OR, FECHA_FACTURA, SITUACION, BASE_IMPONIBLE,'#10' DESCUENTO, IMP' + + 'ORTE_DESCUENTO, IVA, IMPORTE_IVA, RE, '#10' IMPORTE_RE, IMPORTE_T' + + 'OTAL, OBSERVACIONES, ID_PROVEEDOR,'#10' NIF_CIF, NOMBRE, CALLE, P' + + 'OBLACION, PROVINCIA, CODIGO_POSTAL, '#10' FECHA_ALTA, FECHA_MODIF' + + 'ICACION, USUARIO, ID_FORMA_PAGO, '#10' RECARGO_EQUIVALENCIA, ID_T' + + 'IPO_IVA, IMPORTE_NETO, IMPORTE_PORTE'#10' FROM'#10' V_FACTURAS_PROVE' + + 'EDOR'#10' WHERE 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_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 = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'FacturasProveedor_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Refresh_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NIF_CIF' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FacturasProveedor_Refresh_ID_TIPO_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'FacturasCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = True + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'ID_EMPRESA' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = 'DELETE '#10' FROM'#10' FACTURAS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasProveedor' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO FACTURAS_PROVEEDOR_DETALLES'#10' (ID, CANTIDAD, POS' + + 'ICION, ID_FACTURA, TIPO_DETALLE, CONCEPTO,'#10' IMPORTE_UNIDAD, ' + + 'IMPORTE_TOTAL, VISIBLE,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_POR' + + 'TE)'#10' VALUES'#10' (:ID, :CANTIDAD, :POSICION, :ID_FACTURA, :TIPO_' + + 'DETALLE, :CONCEPTO,'#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIB' + + 'LE,'#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'UPDATE FACTURAS_PROVEEDOR_DETALLES'#10' SET '#10' CANTIDAD = :CANTID' + + 'AD, '#10' POSICION = :POSICION, '#10' ID_FACTURA = :ID_FACTURA, '#10' ' + + ' TIPO_DETALLE = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' ' + + ' IMPORTE_UNIDAD = :IMPORTE_UNIDAD, '#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)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasProveedor_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = + 'INSERT INTO FACTURAS_PROVEEDOR ('#10' ID,'#10' ID_EMPRESA,'#10' REF' + + 'ERENCIA,'#10' REFERENCIA_PROVEEDOR,'#10' FECHA_FACTURA,'#10' BASE_I' + + 'MPONIBLE,'#10' DESCUENTO,'#10' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMP' + + 'ORTE_IVA,'#10' RE,'#10' IMPORTE_RE,'#10' IMPORTE_TOTAL,'#10' OBSERVA' + + 'CIONES,'#10' ID_PROVEEDOR,'#10' NIF_CIF,'#10' NOMBRE,'#10' CALLE,'#10' ' + + ' POBLACION,'#10' PROVINCIA,'#10' CODIGO_POSTAL,'#10' FECHA_ALTA,'#10' ' + + ' FECHA_MODIFICACION,'#10' USUARIO,'#10' ID_FORMA_PAGO,'#10' RECAR' + + 'GO_EQUIVALENCIA,'#10' ID_TIPO_IVA,'#10' IMPORTE_NETO,'#10' IMPORTE_' + + 'PORTE)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :REFERENCIA,'#10' ' + + ' :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTURA,'#10' :BASE_IMPONIBLE,' + + #10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE_' + + 'IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' :OBSERVAC' + + 'IONES,'#10' :ID_PROVEEDOR,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' :CALLE,' + + #10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_POSTAL,'#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);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasProveedor' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = + 'UPDATE FACTURAS_PROVEEDOR'#10' SET'#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + + ' REFERENCIA = :REFERENCIA,'#10' REFERENCIA_PROVEEDOR = :REFERENC' + + 'IA_PROVEEDOR,'#10' FECHA_FACTURA = :FECHA_FACTURA,'#10' BASE_IMPON' + + 'IBLE = :BASE_IMPONIBLE,'#10' DESCUENTO = :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 = :OBSERVACION' + + 'ES,'#10' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' NIF_CIF = :NIF_CIF,'#10' ' + + ' NOMBRE = :NOMBRE,'#10' CALLE = :CALLE,'#10' POBLACION = :POBLACI' + + 'ON,'#10' PROVINCIA = :PROVINCIA,'#10' CODIGO_POSTAL = :CODIGO_POST' + + 'AL,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION = :FECH' + + 'A_MODIFICACION,'#10' USUARIO = :USUARIO,'#10' ID_FORMA_PAGO = :ID_' + + 'FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA = :RECARGO_EQUIVALENCIA,'#10' ' + + ' ID_TIPO_IVA = :ID_TIPO_IVA,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10 + + ' IMPORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasProveedor' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert FacturasProveedor' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FacturasProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert FacturasProveedor_Detalles' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FacturasProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update FacturasProveedor' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FacturasProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update FacturasProveedor_Detalles' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FacturasProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete FacturasProveedor_Detalles' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FacturasProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete FacturasProveedor' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FacturasProveedor' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de las factura' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Vencimiento' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Forma de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF/CIF' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cliente' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Direcci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo detalle' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Concepto' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Visible?' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Posici'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_PAGADO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de pago' + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de vencimiento' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_RE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FacturasCliente_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_RECARGO_EQUIVALENCIA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Con R.E.?' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_TIPO_IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Refresh_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Refresh_ID_TIPO_IVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_TIPO_IVA' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCUENTO' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_PORTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_Refresh_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCUENTO' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_Refresh_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_PORTE' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_Refresh_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + end + item + Name = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end> + Left = 150 + Top = 22 + end + object bpFacturasProveedor: TDABusinessProcessor + Schema = schFacturasProveedor + InsertCommandName = 'Insert_FacturasProveedor' + DeleteCommandName = 'Delete_FacturasProveedor' + UpdateCommandName = 'Update_FacturasProveedor' + RefreshDatasetName = 'FacturasProveedor_Refresh' + 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' + RefreshDatasetName = 'FacturasProveedor_Detalles_Refresh' + ReferencedDataset = 'FacturasProveedor_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 72 + 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 00000000..53518ac1 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas @@ -0,0 +1,105 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDAInterfaces, frxClass, DB, IBCustomDataSet, IBDatabase, + uDABusinessProcessor, uDAScriptingProvider, uDACDSDataTable; + +type + { TsrvFacturasProveedor } + TsrvFacturasProveedor = class(TDARemoteService, IsrvFacturasProveedor) + DABINAdapter: TDABINAdapter; + Diagrams: TDADiagrams; + bpFacturasProveedor: TDABusinessProcessor; + bpFacturasProveedor_Detalles: TDABusinessProcessor; + schFacturasProveedor: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvFacturasProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvFacturasProveedor.GenerateReport(const FacturaID: Integer): Binary; +//var +// AReportGenerator : TRptFacturasProveedor; +begin +// AReportGenerator := TRptFacturasProveedor.Create(nil); +// try +// Result := AReportGenerator.GenerarFactura(FacturaID); +// finally +// FreeAndNIL(AReportGenerator); +// end; + Result := NIL; +end; + +function TsrvFacturasProveedor.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..c5dacc4d --- /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 00000000..5b596879 --- /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.drc b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..37a3dbd7 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 00000000..b054a7ca --- /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 00000000..1de986c4 --- /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 00000000..50f4b46e --- /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 00000000..e8df46e1 --- /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 00000000..e5e483c4 --- /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 00000000..bd76eaa2 --- /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.dpk b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk new file mode 100644 index 00000000..1ffc1515 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk @@ -0,0 +1,102 @@ +package FacturasProveedor_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, + FacturasProveedor_model, + FacturasProveedor_controller, + FacturasProveedor_data, + vcl, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + dsnap, + adortl, + GUIBase, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + JvPageCompsD10R, + PNG_D10, + Base, + DataAbstract_D10, + dxLayoutControlD10, + Contactos_view, + PngComponentsD10, + Articulos_view, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + frx10, + fs10, + fqb100, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + PedidosProveedor_controller, + PedidosProveedor_model, + AlbaranesProveedor_model, + AlbProv_FacProv_relation; + +contains + uFacturasProveedorViewRegister in 'uFacturasProveedorViewRegister.pas', + uViewFacturasProveedor in 'uViewFacturasProveedor.pas' {frViewFacturasProveedor: TFrame}, + uEditorFacturasProveedor in 'uEditorFacturasProveedor.pas' {fEditorFacturasProveedor: TfEditorFacturasProveedor}, + uViewFacturaProveedor in 'uViewFacturaProveedor.pas' {frViewFacturaProveedor: TFrame}, + uEditorFacturaProveedor in 'uEditorFacturaProveedor.pas' {fEditorFacturaProveedor: TfEditorFacturaProveedor}, + uEditorElegirArticulosFacturaProveedor in 'uEditorElegirArticulosFacturaProveedor.pas' {fEditorElegirArticulosFacturaProveedor: TfEditorElegirArticulosFacturaProveedor}, + uViewElegirArticulosFacturasProveedor in 'uViewElegirArticulosFacturasProveedor.pas' {frViewElegirArticulosFacturasProveedor: TFrame}, + uViewDetallesFacturaProveedor in 'uViewDetallesFacturaProveedor.pas' {frViewDetallesFacturaProveedor: TFrame}, + uEditorFacturasProveedorReport in 'uEditorFacturasProveedorReport.pas' {fEditorFacturasProveedorReport: TfEditorFacturasProveedorReport}; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.drc b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm new file mode 100644 index 00000000..ec2539ef --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosFacturaProveedor: TfEditorElegirArticulosFacturaProveedor + Caption = 'fEditorElegirArticulosFacturaProveedor' + ExplicitHeight = 478 + 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 00000000..5f39e5b4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.pas @@ -0,0 +1,33 @@ +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, + JvgWizardHeader, uIEditorElegirArticulosFacturasProveedor; + +type + TfEditorElegirArticulosFacturaProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosFacturasProveedor) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosFacturasProveedor; + +{ TfEditorElegirArticulosFacturaCliente } + +procedure TfEditorElegirArticulosFacturaProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosFacturasProveedor) as IViewElegirArticulosFacturasProveedor; +end; + +end. 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 00000000..d8051c96 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dfm @@ -0,0 +1,459 @@ +inherited fEditorFacturaProveedor: TfEditorFacturaProveedor + Left = 454 + Top = 208 + Caption = 'Nueva factura de proveedor' + ClientHeight = 575 + ClientWidth = 788 + Position = poScreenCenter + OnClose = CustomEditorClose + ExplicitWidth = 796 + ExplicitHeight = 609 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 788 + Caption = 'Nueva factura de proveedor' + ExplicitWidth = 788 + inherited Image1: TImage + Left = 761 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 742 + end + end + inherited TBXDock: TTBXDock + Width = 788 + ExplicitWidth = 788 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 788 + 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 = 788 + Height = 317 + OnChanging = pgPaginasChanging + ExplicitWidth = 788 + ExplicitHeight = 317 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 780 + ExplicitHeight = 289 + inline frViewFacturaProveedor1: TfrViewFacturaProveedor + Left = 0 + Top = 0 + Width = 780 + Height = 289 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 780 + ExplicitHeight = 289 + inherited dxLayoutControl1: TdxLayoutControl + Width = 780 + Height = 289 + ExplicitWidth = 780 + ExplicitHeight = 289 + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 159 + Width = 159 + end + inherited edtFecha: TcxDBDateEdit + ExplicitWidth = 159 + Width = 159 + end + inherited memObservaciones: TcxDBMemo + ExplicitWidth = 301 + ExplicitHeight = 159 + Height = 159 + Width = 301 + end + inherited cbFormaPago: TcxDBLookupComboBox + ExplicitWidth = 78 + Width = 78 + end + inherited bFormasPago: TButton + Left = 234 + ExplicitLeft = 234 + end + inherited frViewProveedorFactura: TfrViewDatosYSeleccionProveedor + Left = 394 + Width = 350 + ExplicitLeft = 394 + ExplicitWidth = 350 + inherited dxLayoutControl1: TdxLayoutControl + Width = 350 + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 276 + Width = 276 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 272 + ExplicitLeft = 272 + end + inherited Button3: TBitBtn + Left = 156 + ExplicitLeft = 156 + end + end + end + end + end + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesFacturaProveedor1: TfrViewDetallesFacturaProveedor + Left = 0 + Top = 0 + Width = 780 + Height = 289 + 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 = 780 + ExplicitHeight = 289 + inherited ToolBar1: TToolBar + Width = 780 + ExplicitWidth = 780 + inherited ToolButton4: TToolButton + Wrap = False + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 2 + Wrap = True + ExplicitLeft = 334 + ExplicitTop = 2 + end + inherited FontName: TJvFontComboBox + Left = 0 + ExplicitLeft = 0 + end + inherited FontSize: TEdit + Left = 145 + ExplicitLeft = 145 + end + inherited UpDown1: TUpDown + Left = 187 + ExplicitLeft = 187 + end + inherited ToolButton13: TToolButton + Left = 204 + ExplicitLeft = 204 + end + inherited ToolButton6: TToolButton + Left = 212 + ExplicitLeft = 212 + end + inherited ToolButton7: TToolButton + Left = 246 + ExplicitLeft = 246 + end + inherited ToolButton8: TToolButton + Left = 280 + ExplicitLeft = 280 + end + inherited ToolButton12: TToolButton + Left = 314 + ExplicitLeft = 314 + end + inherited ToolButton9: TToolButton + Left = 322 + ExplicitLeft = 322 + end + inherited ToolButton10: TToolButton + Left = 356 + ExplicitLeft = 356 + end + inherited ToolButton11: TToolButton + Left = 390 + ExplicitLeft = 390 + end + end + inherited cxGrid: TcxGrid + Width = 780 + Height = 217 + ExplicitWidth = 780 + ExplicitHeight = 217 + end + inherited TBXDock1: TTBXDock + Width = 780 + ExplicitWidth = 780 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 556 + Width = 788 + Panels = < + item + Width = 200 + end> + ExplicitTop = 556 + ExplicitWidth = 788 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 393 + Width = 788 + Height = 163 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 393 + ExplicitWidth = 788 + ExplicitHeight = 163 + inherited dxLayoutControl1: TdxLayoutControl + Width = 788 + ExplicitWidth = 788 + inherited Bevel1: TBevel + Top = 111 + Width = 73 + ExplicitTop = 111 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 420 + Top = 30 + Height = 122 + ExplicitLeft = 420 + ExplicitTop = 30 + ExplicitHeight = 122 + end + inherited Bevel4: TBevel + Left = 532 + Top = 111 + Width = 186 + ExplicitLeft = 532 + ExplicitTop = 111 + ExplicitWidth = 186 + end + inherited ImporteDto: TcxDBCurrencyEdit + Top = 131 + Style.IsFontAssigned = True + ExplicitTop = 131 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 603 + Top = 57 + Style.IsFontAssigned = True + ExplicitLeft = 603 + ExplicitTop = 57 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 533 + Top = 131 + Style.IsFontAssigned = True + ExplicitLeft = 533 + ExplicitTop = 131 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Top = 131 + Properties.OnValidate = frViewTotales1edtDescuentoPropertiesValidate + Style.IsFontAssigned = True + ExplicitTop = 131 + end + inherited edtIVA: TcxDBSpinEdit + Left = 532 + Top = 57 + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 57 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 532 + Top = 30 + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 30 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 532 + Top = 84 + Properties.AssignedValues.MinValue = True + Style.IsFontAssigned = True + ExplicitLeft = 532 + ExplicitTop = 84 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 603 + Top = 84 + Style.IsFontAssigned = True + ExplicitLeft = 603 + ExplicitTop = 84 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Top = 30 + Style.IsFontAssigned = True + ExplicitTop = 30 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Top = 158 + DataBinding.DataSource = dsDataTable + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.IsFontAssigned = True + ExplicitTop = 158 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Top = 57 + Properties.OnValidate = frViewTotales1eIVAPropertiesValidate + Style.Color = clInfoBk + ExplicitTop = 57 + ExplicitWidth = 134 + Width = 134 + end + inherited bTiposIVA: TButton + Left = 272 + Top = 57 + OnClick = frViewTotales1bTiposIVAClick + ExplicitLeft = 272 + ExplicitTop = 57 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 84 + Properties.OnEditValueChanged = frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged + ExplicitTop = 84 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + LookAndFeel = frViewFacturaProveedor1.dxLayoutOfficeLookAndFeel1 + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item4: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item1: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group8: TdxLayoutGroup + inherited dxLayoutControl1Item7: TdxLayoutItem + Visible = True + end + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 8 + Top = 144 + 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 00000000..256d1f23 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.pas @@ -0,0 +1,380 @@ +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, + uViewDetallesDTO, uViewDetallesArticulos, uTiposIVAController, + uViewDetallesFacturaProveedor, uViewFacturaProveedor; + + +type + TfEditorFacturaProveedor = class(TfEditorDBItem, IEditorFacturaProveedor) + frViewTotales1: TfrViewTotales; + frViewFacturaProveedor1: TfrViewFacturaProveedor; + frViewDetallesFacturaProveedor1: TfrViewDetallesFacturaProveedor; + 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); + + protected + FController : IFacturasProveedorController; + FFactura: IBizFacturaProveedor; + FViewFactura: IViewFacturaProveedor; + FTiposIVAController : ITiposIVAController; + 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, cxControls, uBizTiposIVA, + 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; + + FViewFactura := NIL; + FFactura := NIL; +end; + +destructor TfEditorFacturaProveedor.Destroy; +begin + FTiposIVAController := NIL; + 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), 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Factura); + 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((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA); +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 := ((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).ID; +end; + +procedure TfEditorFacturaProveedor.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.IMPORTE_PORTE := DisplayValue; +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 código ' + FFactura.REFERENCIA) + else + begin + ShowInfoMessage('El abono se ha dado de alta con el código ' + FFactura.REFERENCIA); + //Preguntamos is desea hacer una orden de devolución asociada + if (Application.MessageBox('¿Desea crear una orden de devolución para el abono?', 'Atención', 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; + + // Actualizar IVA y RE a partir del tipo de IVA del proveedor. + Factura.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 artículos hay que cambiarlos. + if (FFactura.Detalles.RecordCount > 0) then + begin + FDetallesController := TDetallesFacturaProveedorController.Create; + try + FDetallesController.ActualizarDetalles(FFactura.Detalles, FFactura.Proveedor); + finally + FDetallesController := NIL; + end; + 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'; + Showmessage(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 + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorFacturaProveedor.PrevisualizarInterno; +begin + inherited; + FController.Preview(FFactura); +end; + +procedure TfEditorFacturaProveedor.SetController(const Value: IFacturasProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + frViewFacturaProveedor1.frViewProveedorFactura.Controller := Controller.ProveedorController; + 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; + + frViewTotales1.dsTiposIVA.DataTable := FTiposIVAController.BuscarTodos.DataTable; + frViewTotales1.dsTiposIVA.DataTable.Active := True; + + if Assigned(FViewFactura) then + begin + frViewFacturaProveedor1.frViewProveedorFactura.Proveedor := FFactura.Proveedor; + frViewFacturaProveedor1.frViewProveedorFactura.OnProveedorChanged := OnProveedorChanged; + + FViewFactura.Factura := FFactura; + 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. 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 00000000..8fad26ef --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm @@ -0,0 +1,2701 @@ +inherited fEditorFacturasProveedor: TfEditorFacturasProveedor + Caption = 'Lista de facturas de proveedor' + ClientHeight = 666 + ClientWidth = 640 + ExplicitWidth = 648 + ExplicitHeight = 700 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 640 + Caption = 'Lista de facturas de proveedor' + ExplicitWidth = 640 + inherited Image1: TImage + Left = 613 + 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 = 640 + ExplicitWidth = 640 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 623 + 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 tbxMenu: TTBXToolbar + ExplicitWidth = 640 + end + end + inherited StatusBar: TJvStatusBar + Top = 647 + Width = 640 + ExplicitTop = 647 + ExplicitWidth = 640 + end + inline frViewFacturasProveedor1: TfrViewFacturasProveedor [3] + Left = 0 + Top = 102 + Width = 640 + 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 = 640 + ExplicitHeight = 545 + inherited cxGrid: TcxGrid + Width = 640 + Height = 417 + ExplicitWidth = 640 + 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> + 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> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 640 + ExplicitWidth = 640 + inherited TBXDock1: TTBXDock + Width = 640 + ExplicitWidth = 640 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 640 + inherited dxLayoutControl1: TdxLayoutControl + Width = 636 + ExplicitWidth = 636 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 453 + Width = 453 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 237 + Width = 237 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 393 + ExplicitLeft = 393 + ExplicitWidth = 199 + Width = 199 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 636 + ExplicitWidth = 636 + inherited tbxBotones: TTBXToolbar + Width = 626 + ExplicitWidth = 626 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 519 + ExplicitTop = 519 + ExplicitWidth = 640 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 640 + ExplicitWidth = 640 + inherited TBXToolbar1: TTBXToolbar + Width = 630 + ExplicitWidth = 630 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 + 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 albaranes de proveedor.' + Value = 200 + 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 +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 00000000..10d34379 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas @@ -0,0 +1,277 @@ +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; + +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; + procedure FormShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actNuevaFacturaExecute(Sender: TObject); + procedure actNuevoAbonoExecute(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 ImprimirInterno; override; + procedure PrevisualizarInterno; 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, +// uPedidosProveedorController, uBizPedidosProveedor, + uAlbaranesProveedorController, uBizAlbaranesProveedor, + uEditorBase, uGenerarFacturasProvAlbProvUtils; + +{$R *.dfm} + +{ +*************************** TfEditorFacturasProveedor *************************** +} +procedure TfEditorFacturasProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FFacturas.SITUACION = 'PENDIENTE'); +end; + +procedure TfEditorFacturasProveedor.actModificarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FFacturas.SITUACION = 'PENDIENTE'); +end; + +procedure TfEditorFacturasProveedor.actNuevaFacturaExecute(Sender: TObject); +begin + actNuevo.Execute; +end; + +procedure TfEditorFacturasProveedor.actNuevoAbonoExecute(Sender: TObject); +var + Respuesta : Integer; + Opcion : Integer; +// FPedidosClienteController : IPedidosClienteController; +// APedido : IBizPedidoCliente; +// FAlbaranesClienteController : IAlbaranesClienteController; +// AAlbaranes : IBizAlbaranCliente; +// AFacturasNuevas : IBizFacturaCliente; +/// i : 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; + 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 + AMensaje : String; +begin + if Facturas.TIPO = CTE_TIPO_FACTURA then + AMensaje := '¿Desea borrar esta factura de proveedor?' + else + AMensaje := '¿Desea borrar este abono de proveedor?'; + + if (Application.MessageBox(PChar(AMensaje), 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Facturas); + inherited; + end; +end; + +procedure TfEditorFacturasProveedor.FormShow(Sender: TObject); +begin + 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.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorFacturasProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Facturas); +end; + +procedure TfEditorFacturasProveedor.NuevoInterno; +var + Respuesta : Integer; +// FPedidosProveedorController : IPedidosProveedorController; +// APedido : IBizPedidoProveedor; + //FAlbaranesProveedorController : IAlbaranesProveedorController; + //AAlbaranes : IBizAlbaranProveedor; + //AFacturasNuevas : IBizFacturaProveedor; + //i : integer; +begin + inherited; + + Respuesta := JsNuevaFacturaDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevaFacturaDialog.CustomButtonResult of + 300 : begin // Utilizar un pedido +{ FPedidosProveedorController := TPedidosProveedorController.Create; + try + APedido := FPedidosProveedorController.ElegirPedidos(FPedidosProveedorController.BuscarPendientes, + 'Elija el pedido de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Tenga en cuenta que sólo se podrán utilizar pedidos que no tengan ningún albarán ya asociado.', False); + if Assigned(APedido) then + begin + if FController.Anadir(Facturas, APedido) then + FController.Ver(Facturas); + end; + finally + FPedidosClienteController := NIL; + end;} + end; + 200 : begin // Utilizar albaranes + GenerarFacturaProv; + actRefrescar.Execute; + end; + 100 : begin // Factura nuevo vacio + if FController.Anadir(Facturas) then + FController.Ver(Facturas); + end; + end; + end; +end; + +procedure TfEditorFacturasProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de facturas de proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorFacturasProveedor.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorFacturasProveedor.SetController(const Value: IFacturasProveedorController); +begin + FController := Value; +end; + +procedure TfEditorFacturasProveedor.SetFacturas(const Value: IBizFacturaProveedor); +begin + FFacturas := Value; + dsDataTable.DataTable := FFacturas.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewFacturasProveedor).Facturas := Facturas; +end; + +end. 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 00000000..965fafb3 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dfm @@ -0,0 +1,23 @@ +inherited fEditorFacturasProveedorPreview: TfEditorFacturasProveedorPreview + Caption = 'Previsualizar la factura' + ExplicitWidth = 658 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitWidth = 650 + inherited Image1: TImage + Left = 623 + ExplicitLeft = 623 + end + end + inherited StatusBar: TJvStatusBar + ExplicitTop = 439 + ExplicitWidth = 650 + end + 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 00000000..03406c12 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.pas @@ -0,0 +1,28 @@ +unit uEditorFacturasProveedorReport; + +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, 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.pas b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas new file mode 100644 index 00000000..c251f906 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas @@ -0,0 +1,31 @@ +unit uFacturasProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFacturasProveedor, uEditorFacturaProveedor, + uEditorElegirArticulosFacturaProveedor; +// uEditorFacturasProveedorReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFacturasProveedor, 'EditorFacturasProveedor'); + EditorRegistry.RegisterClass(TfEditorFacturaProveedor, 'EditorFacturaProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaProveedor, 'EditorElegirArticulosFacturaProveedor'); +// EditorRegistry.RegisterClass(TfEditorFacturasProveedorPreview, 'EditorFacturasProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFacturasProveedor); + EditorRegistry.UnRegisterClass(TfEditorFacturaProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaProveedor); +// EditorRegistry.UnRegisterClass(TfEditorFacturasProveedorPreview); +end; + +end. 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 00000000..937f71c7 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dfm @@ -0,0 +1,6 @@ +inherited frViewDetallesFacturaProveedor: TfrViewDetallesFacturaProveedor + inherited TBXDock1: TTBXDock + ExplicitTop = 46 + ExplicitWidth = 451 + 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 00000000..89c0ab0c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas @@ -0,0 +1,70 @@ +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; + +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) + protected + FFactura: IBizFacturaProveedor; + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + + procedure AnadirArticulosInterno; 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 + Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tProveedor); + + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaProveedorController).CambiarSignoDetalles(Detalles); +end; + +procedure TfrViewDetallesFacturaProveedor.AnadirArticulosInterno; +begin + (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor); + + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaProveedorController).CambiarSignoDetalles(Detalles); +end; + +function TfrViewDetallesFacturaProveedor.GetFactura: IBizFacturaProveedor; +begin + Result := FFactura; +end; + +procedure TfrViewDetallesFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor); +begin + FFactura := Value; +end; + +end. 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 00000000..23cf7134 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm @@ -0,0 +1,7 @@ +inherited frViewElegirArticulosFacturasProveedor: TfrViewElegirArticulosFacturasProveedor + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + 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 00000000..745431dd --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas @@ -0,0 +1,26 @@ +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid; + +type + IViewElegirArticulosFacturasProveedor = interface(IViewArticulos) + ['{8F2E6451-0A4E-4DF1-908A-62BB5785A150}'] + end; + + TfrViewElegirArticulosFacturasProveedor = class(TfrViewArticulos, IViewElegirArticulosFacturasProveedor) + end; + +implementation +{$R *.dfm} + +end. 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 00000000..306e57c1 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm @@ -0,0 +1,283 @@ +inherited frViewFacturaProveedor: TfrViewFacturaProveedor + Width = 617 + Height = 386 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 617 + Height = 386 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 451 + ExplicitHeight = 304 + DesignSize = ( + 617 + 386) + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 159 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 164 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Height = 159 + Width = 301 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 136 + Top = 111 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.GridMode = True + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsFormaPago + 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 = 78 + end + object bFormasPago: TButton + Left = 162 + Top = 111 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 4 + OnClick = bFormasPagoClick + end + inline frViewProveedorFactura: TfrViewDatosYSeleccionProveedor + Left = 322 + Top = 30 + Width = 350 + Height = 202 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + ReadOnly = False + ExplicitLeft = 322 + ExplicitTop = 30 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 203 + ExplicitLeft = 203 + end + inherited Button3: TBitBtn + Left = 87 + ExplicitLeft = 87 + end + end + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 158 + 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 + 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 + 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 00000000..dd594f41 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas @@ -0,0 +1,121 @@ +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; + +type + IViewFacturaProveedor = interface(IViewBase) + ['{DD934441-75CC-452F-8861-684961E90BB6}'] + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + 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; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item3: TdxLayoutItem; + frViewProveedorFactura: TfrViewDatosYSeleccionProveedor; + dxLayoutControl1Item6: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + procedure bFormasPagoClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + protected + FFactura : IBizFacturaProveedor; + FFormasPagoController : IFormasPagoController; + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + public + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + end; + + +implementation + +uses + uDataModuleContactos, schFacturasProveedorClient_Intf, + uBizFormasPago; + +{$R *.dfm} + +{ TfrViewFacturaProveedor } + +procedure TfrViewFacturaProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewFacturaProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPagoController := TFormasPagoController.Create; + frViewProveedorFactura.MsgElegirProveedor := 'Elija el proveedor al que se le realizará la factura.'; +end; + +procedure TfrViewFacturaProveedor.CustomViewDestroy(Sender: TObject); +begin + inherited; + FFormasPagoController := NIL; +end; + +function TfrViewFacturaProveedor.GetFactura: IBizFacturaProveedor; +begin + Result := FFactura; +end; + +procedure TfrViewFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor); +begin + FFactura := Value; + if Assigned(FFactura) then + begin + DADataSource.DataTable := FFactura.DataTable; + + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + + //Solo se deshabilita al insertar, luego la referencia será modificable + eReferencia.Enabled := (FFactura.DataTable.State = dsInsert); + + 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.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm new file mode 100644 index 00000000..8e9da9c3 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm @@ -0,0 +1,519 @@ +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> + 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 + 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 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 TBXDock1: TTBXDock + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 527 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 328 + ExplicitLeft = 328 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 527 + ExplicitWidth = 527 + inherited tbxBotones: TTBXToolbar + Width = 517 + ExplicitWidth = 517 + end + 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 PngImageList10: TPngImageList + Left = 328 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 proveedor/Views/uViewFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas new file mode 100644 index 00000000..05120c53 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas @@ -0,0 +1,225 @@ +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, dxPScxGridLnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizFacturasProveedor, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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) + 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; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxStylePendientes: TcxStyle; + cxStyleParciales: TcxStyle; + actProveedor: TAction; + actProvincia: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewTIPO: 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); + + 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; + +{$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.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 := cxStylePagada + else if (ASituacion = CTE_PENDIENTE) then + AStyle := cxStylePendientes + else if (ASituacion = CTE_PARCIAMENTE_PAGADA) then + AStyle := cxStyleParciales; + + IndiceCol := cxGridViewIMPORTE_TOTAL.Index; + if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then + AStyle := cxStyleAbono; + 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/Familias/Controller/Familias_controller.bdsproj b/Source/Modulos/Familias/Controller/Familias_controller.bdsproj new file mode 100644 index 00000000..027024ce --- /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.dpk b/Source/Modulos/Familias/Controller/Familias_controller.dpk new file mode 100644 index 00000000..40ceaed6 --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.dpk @@ -0,0 +1,53 @@ +package Familias_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + Familias_model, + Familias_data, + ControllerBase, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + GUIBase; + +contains + uFamiliasController in 'uFamiliasController.pas', + uIEditorFamilias in 'View\uIEditorFamilias.pas'; + +end. diff --git a/Source/Modulos/Familias/Controller/Familias_controller.rc b/Source/Modulos/Familias/Controller/Familias_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Familias/Controller/Familias_controller.res b/Source/Modulos/Familias/Controller/Familias_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Familias/Controller/Familias_controller.res differ diff --git a/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas new file mode 100644 index 00000000..f3d9cb2d --- /dev/null +++ b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas @@ -0,0 +1,23 @@ +unit uIEditorFamilias; + +interface + +uses + uEditorDBBase, uBizFamilias, uFamiliasController; + +type + IEditorFamilias = interface(IEditorDBBase) + ['{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; + end; + + +implementation + +end. diff --git a/Source/Modulos/Familias/Controller/uFamiliasController.pas b/Source/Modulos/Familias/Controller/uFamiliasController.pas new file mode 100644 index 00000000..37536bb2 --- /dev/null +++ b/Source/Modulos/Familias/Controller/uFamiliasController.pas @@ -0,0 +1,237 @@ +unit uFamiliasController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleFamilias, uBizFamilias; + +type + IFamiliasController = interface(IObservador) + ['{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(TObservador, IFamiliasController) + protected + FDataModule : IDataModuleFamilias; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarAlmacen(AFamilia: IBizFamilia): Boolean; + + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + procedure ValidarObjetos; virtual; + + public + constructor Create; virtual; + 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 + 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.ValidarAlmacen(AFamilia: IBizFamilia): Boolean; +begin +// +end; + +procedure TFamiliasController.ValidarObjetos; +begin +// +end; + +procedure TFamiliasController.VerTodos(AFamilias: IBizFamilia); +var + AEditor : IEditorFamilias; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorFamilias', IEditorFamilias, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Familias := AFamilias; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TFamiliasController.Eliminar(AFamilia: IBizFamilia): Boolean; +begin + Result := False; + + 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'); + + ValidarObjetos; + + if ValidarAlmacen(AFamilia) then + begin + ShowHourglassCursor; + try + if (AFamilia.DataTable.State in dsEditModes) then + AFamilia.DataTable.Post; + + 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 00000000..daa0e7ca --- /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.dpk b/Source/Modulos/Familias/Data/Familias_data.dpk new file mode 100644 index 00000000..232c1c42 --- /dev/null +++ b/Source/Modulos/Familias/Data/Familias_data.dpk @@ -0,0 +1,42 @@ +package Familias_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + Familias_model, + Base; + +contains + uDataModuleFamilias in 'uDataModuleFamilias.pas' {DataModuleFamilias}; + +end. diff --git a/Source/Modulos/Familias/Data/Familias_data.rc b/Source/Modulos/Familias/Data/Familias_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Familias/Data/Familias_data.res b/Source/Modulos/Familias/Data/Familias_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Familias/Data/Familias_data.res differ diff --git a/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm b/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm new file mode 100644 index 00000000..9411f06c --- /dev/null +++ b/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm @@ -0,0 +1,186 @@ +object DataModuleFamilias: TDataModuleFamilias + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvFamilias' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_Familias: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'Familias' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'Familias' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'Familias' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Familias' + IndexDefs = <> + Left = 248 + Top = 104 + end + object ds_Familias: TDADataSource + DataTable = tbl_Familias + Left = 248 + Top = 40 + end +end diff --git a/Source/Modulos/Familias/Data/uDataModuleFamilias.pas b/Source/Modulos/Familias/Data/uDataModuleFamilias.pas new file mode 100644 index 00000000..81837378 --- /dev/null +++ b/Source/Modulos/Familias/Data/uDataModuleFamilias.pas @@ -0,0 +1,77 @@ +unit uDataModuleFamilias; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleFamilias, uBizFamilias; + +type + TDataModuleFamilias = class(TDAClientDataModule, IDataModuleFamilias) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_Familias: TDACDSDataTable; + ds_Familias: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + procedure AsignarClaseNegocio(var AFamilia: TDACDSDataTable); virtual; + public + function GetItems : IBizFamilia; + end; + +implementation +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schFamiliasClient_Intf; + +{ TdmFamilias } + +procedure TDataModuleFamilias.AsignarClaseNegocio(var AFamilia: TDACDSDataTable); +begin + AFamilia.BusinessRulesID := BIZ_CLIENT_FAMILIA; +end; + +procedure TDataModuleFamilias.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFamilias._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleFamilias.GetItems: IBizFamilia; +var + AFamilia : TDACDSDataTable; +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 00000000..df259d55 --- /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/Model/Data/uIDataModuleFamilias.pas b/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.pas new file mode 100644 index 00000000..5ca83148 --- /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 00000000..6ffd6bb3 --- /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.dpk b/Source/Modulos/Familias/Model/Familias_model.dpk new file mode 100644 index 00000000..294487f1 --- /dev/null +++ b/Source/Modulos/Familias/Model/Familias_model.dpk @@ -0,0 +1,41 @@ +package Familias_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + DataAbstract_D10; + +contains + uBizFamilias in 'uBizFamilias.pas', + uIDataModuleFamilias in 'Data\uIDataModuleFamilias.pas', + schFamiliasClient_Intf in 'schFamiliasClient_Intf.pas'; + +end. diff --git a/Source/Modulos/Familias/Model/Familias_model.rc b/Source/Modulos/Familias/Model/Familias_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Familias/Model/Familias_model.res b/Source/Modulos/Familias/Model/Familias_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Familias/Model/Familias_model.res differ diff --git a/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas new file mode 100644 index 00000000..2a2c3a3d --- /dev/null +++ b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas @@ -0,0 +1,82 @@ +unit schFamiliasClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{67A67A27-B0E7-4D8B-B283-A6A3B1BCF950}'; + + { Data table names } + nme_Familias = 'Familias'; + + { Familias fields } + fld_FamiliasDESCRIPCION = 'DESCRIPCION'; + + { Familias field indexes } + idx_FamiliasDESCRIPCION = 0; + +type + { IFamilias } + IFamilias = interface(IDAStronglyTypedDataTable) + ['{A882691E-EE02-4577-943E-E0EAE6291978}'] + { Property getters and setters } + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + + + { Properties } + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + end; + + { TFamiliasDataTableRules } + TFamiliasDataTableRules = class(TDADataTableRules, IFamilias) + private + protected + { Property getters and setters } + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + + { Properties } + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TFamiliasDataTableRules } +constructor TFamiliasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFamiliasDataTableRules.Destroy; +begin + inherited; +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; + + +initialization + RegisterDataTableRules(RID_Familias, TFamiliasDataTableRules); + +end. diff --git a/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas new file mode 100644 index 00000000..2eae796f --- /dev/null +++ b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas @@ -0,0 +1,79 @@ +unit schFamiliasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{7935CA4C-99B8-4F96-A8CD-3CE4BCCFC041}'; + +type + { IFamiliasDelta } + IFamiliasDelta = interface(IFamilias) + ['{7935CA4C-99B8-4F96-A8CD-3CE4BCCFC041}'] + { Property getters and setters } + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TFamiliasBusinessProcessorRules } + TFamiliasBusinessProcessorRules = class(TDABusinessProcessorRules, IFamilias, IFamiliasDelta) + private + protected + { Property getters and setters } + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + + { Properties } + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TFamiliasBusinessProcessorRules } +constructor TFamiliasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFamiliasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFamiliasBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION]; +end; + +function TFamiliasBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FamiliasDESCRIPCION]; +end; + +procedure TFamiliasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_FamiliasDelta, TFamiliasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Familias/Model/uBizFamilias.pas b/Source/Modulos/Familias/Model/uBizFamilias.pas new file mode 100644 index 00000000..9bf8e21c --- /dev/null +++ b/Source/Modulos/Familias/Model/uBizFamilias.pas @@ -0,0 +1,27 @@ +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) + end; + +implementation + +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 00000000..012abf9d --- /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.dpk b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk new file mode 100644 index 00000000..14300abe --- /dev/null +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk @@ -0,0 +1,42 @@ +package Familias_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Familias_model, + Familias_controller, + Familias_view, + PluginSDK_D10R; + +contains + uPluginFamilias in 'uPluginFamilias.pas'; + +end. diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.rc b/Source/Modulos/Familias/Plugin/Familias_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.res b/Source/Modulos/Familias/Plugin/Familias_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Familias/Plugin/Familias_plugin.res differ diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm new file mode 100644 index 00000000..2c5b0ba3 --- /dev/null +++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm @@ -0,0 +1,81 @@ +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' + ImageIndex = 0 + OnExecute = actFamiliasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + 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 00000000..67e8fd46 --- /dev/null +++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.pas @@ -0,0 +1,74 @@ +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; + N1: 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.dfm b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm new file mode 100644 index 00000000..c13e2cf8 --- /dev/null +++ b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm @@ -0,0 +1,215 @@ +object srvFamilias: TsrvFamilias + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schFamilias + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Montajes_ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'Montajes_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'Montajes_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'Almacenes_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_MOVIL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_PERSONACONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Almacenes_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'Montajes_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'Montajes_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'Montajes_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre' + Alignment = taLeftJustify + 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' + SQL = 'SELECT DESCRIPCION'#10#10'FROM FAMILIAS' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Familias' + Fields = < + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Familias' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Familias' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Familias' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + 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 00000000..516a0226 --- /dev/null +++ b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.pas @@ -0,0 +1,62 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDAInterfaces; + +type + { TsrvFamilias } + TsrvFamilias = class(TDARemoteService, IsrvFamilias) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + schFamilias: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(Sender: TObject); + { 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvFamilias.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +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 00000000..763df368 --- /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.dpk b/Source/Modulos/Familias/Views/Familias_view.dpk new file mode 100644 index 00000000..28a23ff4 --- /dev/null +++ b/Source/Modulos/Familias/Views/Familias_view.dpk @@ -0,0 +1,42 @@ +package Familias_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, + dbrtl, + vcldb, + dsnap, + adortl, + GUIBase, + DataAbstract_D10, + Familias_controller; + +contains + uEditorFamilias in 'uEditorFamilias.pas' {fEditorFamilias: TfEditorFamilias}, + uFamiliasViewRegister in 'uFamiliasViewRegister.pas'; + +end. diff --git a/Source/Modulos/Familias/Views/Familias_view.rc b/Source/Modulos/Familias/Views/Familias_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Familias/Views/Familias_view.res b/Source/Modulos/Familias/Views/Familias_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Familias/Views/Familias_view.res differ diff --git a/Source/Modulos/Familias/Views/uEditorFamilias.dfm b/Source/Modulos/Familias/Views/uEditorFamilias.dfm new file mode 100644 index 00000000..c086a627 --- /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 00000000..d1675de5 --- /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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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; + +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.pas b/Source/Modulos/Familias/Views/uFamiliasViewRegister.pas new file mode 100644 index 00000000..755b013a --- /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 00000000..f81f2c1e --- /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.dpk b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk new file mode 100644 index 00000000..803a3614 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk @@ -0,0 +1,54 @@ +package FormasPago_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + ControllerBase, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + FormasPago_model, + FormasPago_data; + +contains + uFormasPagoController in 'uFormasPagoController.pas', + uIEditorFormaPago in 'View\uIEditorFormaPago.pas', + uFormasPagoPlazosController in 'uFormasPagoPlazosController.pas', + uIEditorFormasPago in 'View\uIEditorFormasPago.pas'; + +end. 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 00000000..9d9fd7d8 --- /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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.pas new file mode 100644 index 00000000..6b4ba068 --- /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.pas b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.pas new file mode 100644 index 00000000..750d066f --- /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.pas b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas new file mode 100644 index 00000000..804915c6 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas @@ -0,0 +1,311 @@ +unit uFormasPagoController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uIDataModuleFormasPago, uBizFormasPago, uFormasPagoPlazosController; + +type + IFormasPagoController = interface(IObservador) + ['{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(TObservador, 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; + procedure AsignarID(AFormaPago: IBizFormaPago; const IDNuevo: Integer); + + public + constructor Create; virtual; + 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; + +procedure TFormasPagoController.AsignarID(AFormaPago: IBizFormaPago; + const IDNuevo: Integer); +begin + if not Assigned(AFormaPago) then + raise Exception.Create ('Forma de pago no asignada'); + + { Los plazos hay que comprobarlos siempre + tanto en inserción como en modificación. } + if Assigned(AFormaPago.Plazos) then + FPlazosController.AsignarID(AFormaPago.Plazos, IDNuevo, AFormaPago.EsNuevo); + + if AFormaPago.EsNuevo then + begin + AFormaPago.Edit; + AFormaPago.ID := IDNuevo; + AFormaPago.Post; + end; +end; + +function TFormasPagoController.Buscar(ID: Integer): IBizFormaPago; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_FormasPagoID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TFormasPagoController.BuscarTodos: IBizFormaPago; +begin + Result := FDataModule.GetItems; +end; + +constructor TFormasPagoController.Create; +begin + 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 descripción para esta forma de pago.'); + + if not Assigned(AFormaPago.Plazos) + or (AFormaPago.Plazos.RecordCount = 0) then + if (ShowConfirmMessage('¿La forma de pago no tiene plazos establecidos, por lo tanto no se generarán recibos para facturas con esta forma de pago, ¿desea continuar?', '') = IDNO) then + Exit; + + Result := True; +end; + +procedure TFormasPagoController.Ver(AFormaPago: IBizFormaPago); +var + AEditor : IEditorFormaPago; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorFormaPago', IEditorFormaPago, AEditor); + with AEditor do + FormaPago := AFormaPago; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TFormasPagoController.VerTodos(AFormasPago: IBizFormaPago); +var + AEditor : IEditorFormasPago; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorFormasPago', IEditorFormasPago, AEditor); + with AEditor do + FormasPago := AFormasPago; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TFormasPagoController.Eliminar(AFormaPago: IBizFormaPago): Boolean; +begin + Result := False; + + 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; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarFormaPago(AFormaPago) then + begin + ShowHourglassCursor; + try + if AFormaPago.EsNuevo then + NuevoID := FDataModule.GetNextID(AFormaPago.DataTable.LogicalName) + else + NuevoID := AFormaPago.ID; + + AsignarID(AFormaPago, NuevoID); + 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.pas b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas new file mode 100644 index 00000000..ddcb9c64 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas @@ -0,0 +1,113 @@ +unit uFormasPagoPlazosController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizFormasPago, uBizFormasPagoPlazos, uIDataModuleFormasPago; + +type + IFormasPagoPlazosController = interface + ['{3FCE2A31-9783-45F9-96D6-1157165AB8DB}'] + procedure AsignarID(ADetalles: IBizFormaPagoPlazos; IDCabecera: Integer; AEsNuevo:Boolean); + end; + + TFormasPagoPlazosController = class(TInterfacedObject, IFormasPagoPlazosController) + private + FDataModule : IDataModuleFormasPago; + public + procedure AsignarID(ADetalles: IBizFormaPagoPlazos; IDCabecera: Integer; AEsNuevo:Boolean); + constructor Create; virtual; + destructor Destroy; override; + end; + +implementation + +{ TFormasPagoPlazosController } + +uses + uDataModuleFormasPago, uEditorRegistryUtils, + cxControls, schFormasPagoClient_Intf; + +procedure TFormasPagoPlazosController.AsignarID( + ADetalles: IBizFormaPagoPlazos; IDCabecera: Integer; + AEsNuevo: Boolean); +begin + with ADetalles do + begin + DataTable.DisableControls; + try + if not DataTable.Active then + DataTable.Active := True; + +// AuxPosicion := POSICION; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FORMA_PAGO := IDCabecera; + Post + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if ADetalles.EsNuevo then + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FORMA_PAGO := IDCabecera; + Post + end; + DataTable.Next + end; + end; + finally + DataTable.EnableControls; + end; + end; +end; + +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 00000000..62fa68dc --- /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.dpk b/Source/Modulos/Formas de pago/Data/FormasPago_data.dpk new file mode 100644 index 00000000..81db00df --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/FormasPago_data.dpk @@ -0,0 +1,42 @@ +package FormasPago_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + Base, + FormasPago_model; + +contains + uDataModuleFormasPago in 'uDataModuleFormasPago.pas' {DataModuleFormasPago}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm new file mode 100644 index 00000000..8789e8bf --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm @@ -0,0 +1,445 @@ +object DataModuleFormasPago: TDataModuleFormasPago + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvFormasPago' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_FormasPago: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descripci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Titular' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Entidad' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Sucusal' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Cuenta' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPago_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FormasPago' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FormasPago' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FormasPago' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FormasPago' + IndexDefs = <> + Left = 168 + Top = 88 + end + object ds_FormasPago: TDADataSource + DataTable = tbl_FormasPago + Left = 168 + Top = 24 + end + object tbl_FormasPagoPlazos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FormasPagoPlazos_ID' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPagoPlazos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FormasPagoPlazos_ID_FORMA_PAGO' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPagoPlazos_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUM_DIAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Num. d'#237'as' + Alignment = taLeftJustify + DictionaryEntry = 'FormasPagoPlazos_NUM_DIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PORCENTAJE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% aplazado' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'FormasPagoPlazos_PORCENTAJE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_FORMA_PAGO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'FormasPagoPlazos' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'FormasPagoPlazos' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'FormasPagoPlazos' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 = 280 + Top = 88 + end + object ds_FormasPagoPlazos: TDADataSource + DataTable = tbl_FormasPagoPlazos + Left = 280 + Top = 24 + 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 00000000..aeefdece --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.pas @@ -0,0 +1,116 @@ +unit uDataModuleFormasPago; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleFormasPago, uBizFormasPago, uBizFormasPagoPlazos; + +type + TDataModuleFormasPago = class(TDAClientDataModule, IDataModuleFormasPago) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_FormasPago: TDACDSDataTable; + ds_FormasPago: TDADataSource; + tbl_FormasPagoPlazos: TDACDSDataTable; + ds_FormasPagoPlazos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetPlazos: IBizFormaPagoPlazos; + public + function GetItems: IBizFormaPago; + function GetNextID(const DataSetName : String) : Integer; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schFormasPagoClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleFormasPago.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFormasPago.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_FormasPago then + Result := 'GEN_FORMAS_PAGO_ID' + else + if DataSetName = nme_FormasPagoPlazos then + Result := 'GEN_FORMAS_PAGO_PLAZOS_ID'; +end; + +function TDataModuleFormasPago.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvFormasPago).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleFormasPago._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleFormasPago._GetPlazos: IBizFormaPagoPlazos; +var + APlazos : TDACDSDataTable; +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 : TDACDSDataTable; +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 00000000..a3459728 --- /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/Model/Data/uIDataModuleFormasPago.pas b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas new file mode 100644 index 00000000..3e2ce2ce --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas @@ -0,0 +1,17 @@ +unit uIDataModuleFormasPago; + +interface + +uses + uBizFormasPago; + +type + IDataModuleFormasPago = interface + ['{CC6A63E1-2AF2-40E5-B6DC-46CC1549AA56}'] + function GetItems: IBizFormaPago; + function GetNextID(const DataSetName : String) : Integer; + 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 00000000..57c31415 --- /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.dpk b/Source/Modulos/Formas de pago/Model/FormasPago_model.dpk new file mode 100644 index 00000000..31b37667 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/FormasPago_model.dpk @@ -0,0 +1,44 @@ +package FormasPago_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + DataAbstract_D10; + +contains + uIDataModuleFormasPago in 'Data\uIDataModuleFormasPago.pas', + schFormasPagoClient_Intf in 'schFormasPagoClient_Intf.pas', + schFormasPagoServer_Intf in 'schFormasPagoServer_Intf.pas', + uBizFormasPago in 'uBizFormasPago.pas', + uBizFormasPagoPlazos in 'uBizFormasPagoPlazos.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas new file mode 100644 index 00000000..fe0682b4 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas @@ -0,0 +1,322 @@ +unit schFormasPagoClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{75A0F4CB-C9F1-4725-BB8F-6B95A8B79BFF}'; + RID_FormasPagoPlazos = '{F15326B8-E938-4226-9647-954628B5A863}'; + + { 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) + ['{D4A90295-67F2-441C-B84F-F17F80B1B8B3}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + end; + + { TFormasPagoDataTableRules } + TFormasPagoDataTableRules = class(TDADataTableRules, IFormasPago) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFormasPagoPlazos } + IFormasPagoPlazos = interface(IDAStronglyTypedDataTable) + ['{4E56EE2D-C4D1-41A3-BFA7-9CF1185C257A}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetNUM_DIASValue: Integer; + procedure SetNUM_DIASValue(const aValue: Integer); + function GetPORCENTAJEValue: Float; + procedure SetPORCENTAJEValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property NUM_DIAS: Integer read GetNUM_DIASValue write SetNUM_DIASValue; + property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + end; + + { TFormasPagoPlazosDataTableRules } + TFormasPagoPlazosDataTableRules = class(TDADataTableRules, IFormasPagoPlazos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetNUM_DIASValue: Integer; virtual; + procedure SetNUM_DIASValue(const aValue: Integer); virtual; + function GetPORCENTAJEValue: Float; virtual; + procedure SetPORCENTAJEValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property NUM_DIAS: Integer read GetNUM_DIASValue write SetNUM_DIASValue; + property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ 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.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.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.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.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.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.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.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_FormasPagoCUENTA].AsString; +end; + +procedure TFormasPagoDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoCUENTA].AsString := aValue; +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.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.GetNUM_DIASValue: Integer; +begin + result := DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].AsInteger; +end; + +procedure TFormasPagoPlazosDataTableRules.SetNUM_DIASValue(const aValue: Integer); +begin + DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].AsInteger := aValue; +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; + + +initialization + RegisterDataTableRules(RID_FormasPago, TFormasPagoDataTableRules); + RegisterDataTableRules(RID_FormasPagoPlazos, TFormasPagoPlazosDataTableRules); + +end. 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 00000000..2b33d2d1 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.pas @@ -0,0 +1,357 @@ +unit schFormasPagoServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{D0ECD138-153C-48AE-A90B-3C1CA44928CA}'; + RID_FormasPagoPlazosDelta = '{729F444F-315A-41F5-9BB1-75B36B1F4CA1}'; + +type + { IFormasPagoDelta } + IFormasPagoDelta = interface(IFormasPago) + ['{D0ECD138-153C-48AE-A90B-3C1CA44928CA}'] + { 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetTITULARValue: String; virtual; + function GetOldTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property OldTITULAR : String read GetOldTITULARValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFormasPagoPlazosDelta } + IFormasPagoPlazosDelta = interface(IFormasPagoPlazos) + ['{729F444F-315A-41F5-9BB1-75B36B1F4CA1}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldNUM_DIASValue : Integer; + function GetOldPORCENTAJEValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldNUM_DIAS : Integer 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetNUM_DIASValue: Integer; virtual; + function GetOldNUM_DIASValue: Integer; virtual; + procedure SetNUM_DIASValue(const aValue: Integer); virtual; + function GetPORCENTAJEValue: Float; virtual; + function GetOldPORCENTAJEValue: Float; virtual; + procedure SetPORCENTAJEValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property NUM_DIAS : Integer read GetNUM_DIASValue write SetNUM_DIASValue; + property OldNUM_DIAS : Integer read GetOldNUM_DIASValue; + property PORCENTAJE : Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + property OldPORCENTAJE : Float read GetOldPORCENTAJEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoID]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoID] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoREFERENCIA]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDESCRIPCION]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoTITULAR]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoENTIDAD]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoSUCURSAL]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDC]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC] := aValue; +end; + +function TFormasPagoBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoCUENTA]; +end; + +procedure TFormasPagoBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosID]; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID] := aValue; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID_FORMA_PAGO]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + +function TFormasPagoPlazosBusinessProcessorRules.GetNUM_DIASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldNUM_DIASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosNUM_DIAS]; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetNUM_DIASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS] := aValue; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetPORCENTAJEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldPORCENTAJEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosPORCENTAJE]; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetPORCENTAJEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_FormasPagoDelta, TFormasPagoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FormasPagoPlazosDelta, TFormasPagoPlazosBusinessProcessorRules); + +end. 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 00000000..b85e2357 --- /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; + 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.pas b/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.pas new file mode 100644 index 00000000..01cedd34 --- /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; + 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 00000000..3bf0833f --- /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.dpk b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dpk new file mode 100644 index 00000000..baecb589 --- /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} + +requires + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + FormasPago_model, + FormasPago_controller, + FormasPago_view, + PluginSDK_D10R; + +contains + uPluginFormasPago in 'uPluginFormasPago.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm new file mode 100644 index 00000000..5b7f3a8e --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm @@ -0,0 +1,81 @@ +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 = <> + Left = 232 + Top = 16 + 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 = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object FormasPago1: TMenuItem + Tag = 19001 + Action = actFormasPago + 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/Formas de pago/Plugin/uPluginFormasPago.pas b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas new file mode 100644 index 00000000..ce0d8e1c --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas @@ -0,0 +1,74 @@ +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; + N1: 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.dfm b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm new file mode 100644 index 00000000..6329cf3f --- /dev/null +++ b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm @@ -0,0 +1,707 @@ +object srvFormasPago: TsrvFormasPago + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schFormasPago + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 202 + Width = 392 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FormasPago_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descripci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Titular' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Entidad' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Sucusal' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DC' + Alignment = taLeftJustify + end + item + Name = 'FormasPago_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. Cuenta' + Alignment = taLeftJustify + end + item + Name = 'FormasPagoPlazos_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FormasPagoPlazos_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'FormasPagoPlazos_NUM_DIAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Num. d'#237'as' + Alignment = taLeftJustify + end + item + Name = 'FormasPagoPlazos_PORCENTAJE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% aplazado' + Alignment = taRightJustify + end> + Left = 150 + Top = 24 + end + object schFormasPago: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO' + SQL = + 'SELECT '#10' ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCUR' + + 'SAL, '#10' DC, CUENTA'#10' FROM'#10' FORMAS_PAGO' + StatementType = stSQL + 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 = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'FormasPago_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO_PLAZOS' + SQL = + 'SELECT '#10' ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE'#10' FROM'#10' F' + + 'ORMAS_PAGO_PLAZOS'#10' WHERE'#10' FORMAS_PAGO_PLAZOS.ID_FORMA_PAGO =' + + ' :ID_FORMA_PAGO' + StatementType = stSQL + 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 = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FormasPagoPlazos_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FormasPagoPlazos_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUM_DIAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'FormasPagoPlazos_NUM_DIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PORCENTAJE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'FormasPagoPlazos_PORCENTAJE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO' + SQL = + 'INSERT'#10' INTO FORMAS_PAGO'#10' (ID, REFERENCIA, DESCRIPCION, TITU' + + 'LAR, ENTIDAD, SUCURSAL, '#10' DC, CUENTA)'#10' VALUES'#10' (:ID, :RE' + + 'FERENCIA, :DESCRIPCION, :TITULAR, :ENTIDAD, '#10' :SUCURSAL, :DC' + + ', :CUENTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FormasPago' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO' + SQL = + 'UPDATE FORMAS_PAGO'#10' SET '#10' REFERENCIA = :REFERENCIA,'#10' DESC' + + 'RIPCION = :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 = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUM_DIAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PORCENTAJE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FormasPagoPlazos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUM_DIAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PORCENTAJE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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' W' + + 'HERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FormasPagoPlazos' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert FormasPago' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FormasPago' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert FormasPagoPlazos' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'FormasPagoPlazos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update FormasPago' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FormasPago' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update FormasPagoPlazos' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'FormasPagoPlazos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete FormasPagoPlazos' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FormasPagoPlazos' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete FormasPago' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'FormasPago' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 90 + end + object bpFormasPagoPlazos: TDABusinessProcessor + Schema = schFormasPago + InsertCommandName = 'Insert_FormasPagoPlazos' + DeleteCommandName = 'Delete_FormasPagoPlazos' + UpdateCommandName = 'Update_FormasPagoPlazos' + ReferencedDataset = 'FormasPagoPlazos' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 90 + end + object bpFormasPago: TDABusinessProcessor + Schema = schFormasPago + InsertCommandName = 'Insert_FormasPago' + DeleteCommandName = 'Delete_FormasPago' + UpdateCommandName = 'Update_FormasPago' + ReferencedDataset = 'FormasPago' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + 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 00000000..5d2ad57b --- /dev/null +++ b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.pas @@ -0,0 +1,72 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor; + +type + { TsrvFormasPago } + TsrvFormasPago = class(TDARemoteService, IsrvFormasPago) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + bpFormasPagoPlazos: TDABusinessProcessor; + bpFormasPago: TDABusinessProcessor; + schFormasPago: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + private + protected + { IsrvFormasPago methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils; + +procedure Create_srvFormasPago(out anInstance : IUnknown); +begin + anInstance := TsrvFormasPago.Create(NIL); +end; + +{ srvFormasPago } +procedure TsrvFormasPago.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvFormasPago.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvFormasPago.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..32104510 --- /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.dpk b/Source/Modulos/Formas de pago/Views/FormasPago_view.dpk new file mode 100644 index 00000000..c0e9ab93 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/FormasPago_view.dpk @@ -0,0 +1,43 @@ +package FormasPago_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + FormasPago_controller, + JvCmpD10R; + +contains + uEditorFormasPago in 'uEditorFormasPago.pas' {fEditorFormasPago: TfEditorFormasPago}, + uFormasPagoViewRegister in 'uFormasPagoViewRegister.pas', + uEditorFormaPago in 'uEditorFormaPago.pas' {fEditorFormaPago}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm new file mode 100644 index 00000000..5f3e6164 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm @@ -0,0 +1,334 @@ +object fEditorFormaPago: TfEditorFormaPago + Left = 453 + Top = 234 + ActiveControl = eReferencia + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Forma de pago' + ClientHeight = 430 + 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 Label4: TLabel + Left = 32 + Top = 154 + Width = 85 + Height = 13 + Alignment = taRightJustify + Caption = 'Nombre del titular:' + end + object Label5: TLabel + Left = 16 + Top = 104 + Width = 149 + Height = 13 + Caption = 'Cuenta bancaria asociada' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel2: TBevel + Left = 173 + Top = 104 + Width = 212 + Height = 10 + Shape = bsBottomLine + end + object Label6: TLabel + Left = 54 + Top = 181 + Width = 63 + Height = 13 + Alignment = taRightJustify + Caption = 'C'#243'd. entidad:' + end + object Label7: TLabel + Left = 234 + Top = 181 + Width = 67 + Height = 13 + Alignment = taRightJustify + Caption = 'C'#243'd. sucursal:' + end + object Label8: TLabel + Left = 99 + Top = 208 + Width = 18 + Height = 13 + Alignment = taRightJustify + Caption = 'DC:' + end + object Label9: TLabel + Left = 32 + Top = 127 + Width = 275 + Height = 13 + Caption = 'Puede asociar a esta forma de pago una cuenta bancaria.' + end + object Label10: TLabel + Left = 173 + Top = 208 + Width = 61 + Height = 13 + Alignment = taRightJustify + Caption = 'C'#243'd. cuenta:' + end + object Label11: TLabel + Left = 16 + Top = 240 + 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 = 240 + Width = 272 + Height = 10 + Shape = bsBottomLine + end + object Bevel4: TBevel + Left = 8 + Top = 373 + Width = 388 + Height = 10 + Shape = bsBottomLine + end + object JvEnterAsTab1: TJvEnterAsTab + Left = 137 + Top = 389 + Width = 28 + Height = 28 + end + object bAceptar: TButton + Left = 234 + Top = 397 + Width = 75 + Height = 23 + Action = actAceptar + TabOrder = 10 + end + object bCancelar: TButton + Left = 319 + Top = 397 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 11 + 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 eTitular: TDBEdit + Left = 123 + Top = 151 + Width = 262 + Height = 21 + DataField = 'TITULAR' + DataSource = dsFormaPago + TabOrder = 2 + end + object eCuenta: TDBEdit + Left = 240 + Top = 205 + Width = 145 + Height = 21 + DataField = 'CUENTA' + DataSource = dsFormaPago + TabOrder = 6 + end + object eCodEntidad: TDBEdit + Left = 123 + Top = 178 + Width = 94 + Height = 21 + DataField = 'ENTIDAD' + DataSource = dsFormaPago + TabOrder = 3 + end + object eCodSucursal: TDBEdit + Left = 307 + Top = 178 + Width = 78 + Height = 21 + DataField = 'SUCURSAL' + DataSource = dsFormaPago + TabOrder = 4 + end + object eDC: TDBEdit + Left = 123 + Top = 205 + Width = 44 + Height = 21 + DataField = 'DC' + DataSource = dsFormaPago + TabOrder = 5 + end + object bAnadir: TButton + Left = 290 + Top = 262 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 8 + end + object bEliminar: TButton + Left = 290 + Top = 291 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 9 + end + object ListaFormasPago: TcxGrid + Left = 32 + Top = 262 + Width = 252 + Height = 105 + TabOrder = 7 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object ListaFormasPagoDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = dsPlazos + 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 = 383 + 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 = 383 + end + object dsPlazos: TDADataSource + Left = 8 + Top = 383 + 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 00000000..8a636593 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas @@ -0,0 +1,201 @@ +{ +=============================================================================== + Copyright (©) 2006. 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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; + +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; + eTitular: TDBEdit; + eCuenta: TDBEdit; + dsPlazos: TDADataSource; + Label1: TLabel; + Bevel1: TBevel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Bevel2: TBevel; + Label6: TLabel; + eCodEntidad: TDBEdit; + Label7: TLabel; + eCodSucursal: TDBEdit; + Label8: TLabel; + eDC: TDBEdit; + Label9: TLabel; + Label10: 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 + 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 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.dfm b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm new file mode 100644 index 00000000..10686a6d --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm @@ -0,0 +1,149 @@ +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' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + 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 = 151 + 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 00000000..c5076b03 --- /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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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; + +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.pas b/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.pas new file mode 100644 index 00000000..6575f23b --- /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/Inventario/Controller/Inventario_controller.bdsproj b/Source/Modulos/Inventario/Controller/Inventario_controller.bdsproj new file mode 100644 index 00000000..40d95742 --- /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.dpk b/Source/Modulos/Inventario/Controller/Inventario_controller.dpk new file mode 100644 index 00000000..075d2bf4 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.dpk @@ -0,0 +1,56 @@ +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 + rtl, + Inventario_model, + vcl, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + GUIBase, + Inventario_data, + Usuarios, + Almacenes_controller, + Articulos_controller, + PedidosCliente_controller, + PedidosCliente_model, + PedidosProveedor_controller, + PedidosProveedor_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}; + +end. diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.rc b/Source/Modulos/Inventario/Controller/Inventario_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.res b/Source/Modulos/Inventario/Controller/Inventario_controller.res new file mode 100644 index 00000000..36f26e23 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 00000000..973b1218 --- /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/uIEditorElegirArticulosAlmacen.pas b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.pas new file mode 100644 index 00000000..0f1932d0 --- /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.pas b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.pas new file mode 100644 index 00000000..0c255da3 --- /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.pas b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas new file mode 100644 index 00000000..3d3ec4ac --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas @@ -0,0 +1,30 @@ +unit uIEditorEntradaSalidaArticulos; + +interface + +uses + uEditorDBItem, uBizInventario, uInventarioController; + +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 getResultadoModalOK: Boolean; + property ResultadoModalOK: Boolean read getResultadoModalOK; + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas new file mode 100644 index 00000000..9592d6b9 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas @@ -0,0 +1,30 @@ +unit uIEditorInventario; + +interface + +uses + uEditorGridBase, uBizInventario, uInventarioController; + +type + IEditorInventario = interface(IEditorGridBase) + ['{D9C21CA9-5923-4F89-ABBC-81128D2F5272}'] + 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.pas b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas new file mode 100644 index 00000000..033fce46 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas @@ -0,0 +1,46 @@ +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, uIEditorElegirArticulosCatalogo; + +function TArticulosInventarioController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosCatalogo; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosCatalogo', IEditorElegirArticulosCatalogo, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas new file mode 100644 index 00000000..3bca067b --- /dev/null +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -0,0 +1,1096 @@ +unit uInventarioController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleInventario, uBizInventario, uArticulosInventarioController, + uAlmacenesController, uPedidosClienteController, uBizPedidosCliente, + uPedidosProveedorController, uBizPedidosProveedor, uBizArticulos; + +type + IInventarioController = interface(IObservador) + ['{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); + procedure Reservar(AInventario : IBizInventario); + function Liberar(AInventario : IBizInventario): Boolean; + procedure VerTodos(AInventario: IBizInventario); + + + + function BuscarTodos: IBizInventario; + function Buscar(const ID_ALMACEN: Integer): IBizInventario; + function ExtraerSeleccionados(AArticulos: IBizInventario) : IBizInventario; + + procedure Anadir(AArticulos, AInventario : IBizInventario); + function Ver(AArticulos: IBizInventario; AInventario : IBizInventario): Boolean; + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): 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); + function EntradaPedido(AInventario: IBizInventario; Const CodigoAlmacenDestino: Integer; 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; + end; + + TInventarioController = class(TObservador, IInventarioController) + private + FAlmacenesController: IAlmacenesController; + FArticulosController : IArticulosInventarioController; + FPedidosClienteController : IPedidosClienteController; + FPedidosProveedorController : IPedidosProveedorController; + function GetAlmacenesController: IAlmacenesController; + function GetArticulosController: IArticulosInventarioController; + function GetPedidosClienteController: IPedidosClienteController; + function GetPedidosProveedorController: IPedidosProveedorController; + procedure SetAlmacenesController(const Value: IAlmacenesController); + procedure SetArticulosController(const Value: IArticulosInventarioController); + procedure SetPedidosClienteController(const Value: IPedidosClienteController); + procedure SetPedidosProveedorController(const Value: IPedidosProveedorController); + + function Reservar(AInventario : IBizInventario; Todos: Boolean; Const APedido: IBizPedidoCliente): Boolean; overload; + function Liberar(AInventario : IBizInventario; Todos: Boolean): Boolean; overload; + + + function EntradaSalidaArticulos(AArticulos, AInventario : IBizInventario): Boolean; overload; + + 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); + procedure DeshabilitarOnCalcFields(Sender: TDADataTable); + function ValidarCantidades(AArticulos: IBizInventario): Boolean; + function Validar(AArticulos: IBizInventario): Boolean; + + //Estos son los tres métodos 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 ArticulosController: IArticulosInventarioController read GetArticulosController write SetArticulosController; + property PedidosClienteController: IPedidosClienteController read GetPedidosClienteController write SetPedidosClienteController; + property PedidosProveedorController: IPedidosProveedorController read GetPedidosProveedorController write SetPedidosProveedorController; + + constructor Create; virtual; + 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 ElegirArticulos(AArticulos : IBizInventario; AMensaje: String; AMultiSelect: Boolean): IBizInventario; + function ExtraerSeleccionados(AArticulos: IBizInventario) : IBizInventario; + + 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); + function EntradaPedido(AInventario: IBizInventario; Const CodigoAlmacenDestino: Integer; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; + function SalidaAlbaran(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; + + function Ver(AArticulos: IBizInventario; AInventario : IBizInventario): Boolean; + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; + + function Liberar(AInventario : IBizInventario): Boolean; overload; + procedure Reservar(AInventario : IBizInventario); overload; + + + procedure VerTodos(AInventario: IBizInventario); + + + end; + +implementation + +uses + Forms, cxControls, DB, schInventarioClient_Intf, uEditorRegistryUtils, + uIEditorInventario, uDataModuleInventario, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + dialogs, Variants, schPedidosProveedorClient_Intf, + uBizAlmacenes, uControllerDetallesBase, uDialogUtils, + uIEditorEntradaSalidaArticulos, schArticulosClient_Intf, + uIEditorElegirArticulosAlmacen, uInventarioUtils; + +{ 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: 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); + FiltrarEmpresa(Result); +end; + +function TInventarioController.BuscarTodos: IBizInventario; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +procedure TInventarioController.Copiar(AArticulos: IBizInventario; ADetalles: IDAStronglyTypedDataTable; AInventario: IBizInventario); +{ +Procedimiento que copia en AArticulos, todos los detalles pasados por parametro ADetalles +añadiendo además el stock de cada uno de los detalles datos, siempre y cuando dichos +detalles existan en AInventario pasado por parámetro. + +ADetalles será una interfaz genérica porque pueden venir dos tipos de elementos a añadir: +- 1 Articulos de catálogo: IBizArticulo +- 2 Artículos de un almacén: IBizInventario +- 3 Detalles de un pedido de proveedor u albaran de cliente: IDAStronglyTypedDataTable (cumple con los tipos de controller detalles base +} +var + StockArticulo: Integer; + +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 serán 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).AsInteger; + 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 añadido + if not AArticulos.DataTable.Editing then + AArticulos.DataTable.Edit; + AArticulos.STOCK := StockArticulo; + + AArticulos.DataTable.Post; + Next; + end; + end; +end; + +constructor TInventarioController.Create; +begin + AsignarDataModule; + FArticulosController := TArticulosInventarioController.Create; + FAlmacenesController := TAlmacenesController.Create; + FPedidosClienteController := TPedidosClienteController.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; + FPedidosClienteController := 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); + try + with AEditor do + begin + Controller := Self; + Inventario := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + 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(ID_NULO) as IBizInventario); + CopyDataTable(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +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: + 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): Boolean; +var + AEditor : IEditorEntradaSalidaArticulos; +begin + Result := False; + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorEntradaSalidaArticulos', IEditorEntradaSalidaArticulos, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Articulos := AArticulos; + Inventario := AInventario; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + Result := AEditor.ResultadoModalOK; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TInventarioController.VerTodos(AInventario: IBizInventario); +var + AEditor : IEditorInventario; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorInventario', IEditorInventario, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Inventario := AInventario; + MultiSelect := False; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +end; + +function TInventarioController._Vacio: IBizInventario; +begin + Result := Buscar(ID_NULO); +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 artículo 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 artículo porque tiene artículos', 'Atención', MB_ICONWARNING or MB_OK); + end; + end; +end; +} + +function TInventarioController.EntradaSalidaArticulos(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.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 ningún almacén como destino.' + #10#13 + + 'Si desea recibir este pedido en algún almacén' + #10#13 + + 'modifique antes el pedido para indicarlo.', 'Atención', MB_ICONWARNING or MB_OK); + + Exit; + end; + + AArticulos := Buscar(ID_NULO); + 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 artículos que esten dados de alta en nuestro catálogo + 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(ID_NULO); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente 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; const CodigoAlmacenDestino: Integer; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; +var + AArticulos: IBizInventario; +begin + Result := False; + AArticulos := Buscar(ID_NULO); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tEntradaPedidoProveedor; + AArticulos.IDAlmacenDestino := CodigoAlmacenDestino; + + //Inicializamos los articulos a hacer salida con los dados por parametro + Copiar(AArticulos, ADetalles, AInventario); + + ADetallesFinal:= AArticulos; + Result := EntradaSalidaArticulos(AArticulos, AInventario); +end; + +procedure TInventarioController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +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; + +procedure TInventarioController.Reservar(AInventario : IBizInventario); +var + APedido: IBizPedidoCliente; +begin + if not Assigned(AInventario) then + exit; + + try + APedido := FPedidosClienteController.BuscarPendientes; + APedido := FPedidosClienteController.ElegirPedidos(APedido, '', False); + + if Assigned(APedido) then + Reservar(AInventario, False, APedido); + + finally + APedido := Nil; + end; +end; + +function TInventarioController.Reservar(AInventario : IBizInventario; Todos: Boolean; const APedido: IBizPedidoCliente): 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; + AInventario.ID_PEDIDO_CLIENTE := APedido.ID; + AInventario.REFERENCIA_PED_CLI := APedido.REFERENCIA; + Post; + Next; + end; + end + else + begin + Edit; + AInventario.ID_PEDIDO_CLIENTE := APedido.ID; + AInventario.REFERENCIA_PED_CLI := APedido.REFERENCIA; + Post; + end; + + ApplyUpdates; + Result := True; + end; + except + on E: EDAApplyUpdateFailed do + begin + AInventario.DataTable.CancelUpdates; + showmessage('Error al reservar para el pedido'); + end; + end; +} +end; + +function TInventarioController.SalidaAlbaran(AInventario: IBizInventario; const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; +var + AArticulos: IBizInventario; +begin + try + Result := False; + AArticulos := Buscar(ID_NULO); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente 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(ID_NULO); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente 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.SetArticulosController(const Value: IArticulosInventarioController); +begin + FArticulosController := Value +end; + +procedure TInventarioController.SetPedidosClienteController(const Value: IPedidosClienteController); +begin + FPedidosClienteController := 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 almacén + AAlmacenes := FAlmacenesController.BuscarTodos; + if not AAlmacenes.DataTable.Active then + AAlmacenes.DataTable.Active := True; + + AAlmacenes := FAlmacenesController.VerLista(AAlmacenes); + + //Aginamos el nuevo almacén + 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 + try + AArticulos := Buscar(ID_NULO); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tTraslado; + AArticulos.IDAlmacenOrigen := CodigoAlmacenOrigen; + AArticulos.IDAlmacenDestino := CodigoAlmacenDestino; + EntradaSalidaArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + 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); +begin + if AInventario.DataTable.Active then + AInventario.DataTable.Active := False; + + // Filtrar los inventario actuales por empresa + with AInventario.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + + OpenBraket; + AddText(fld_InventarioID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual)); + CloseBraket; + end; +end; + +function TInventarioController.GetAlmacenesController: IAlmacenesController; +begin + Result := FAlmacenesController; +end; + +function TInventarioController.GetArticulosController: IArticulosInventarioController; +begin + Result := FArticulosController; +end; + +function TInventarioController.GetPedidosClienteController: IPedidosClienteController; +begin + Result := FPedidosClienteController; +end; + +function TInventarioController.GetPedidosProveedorController: IPedidosProveedorController; +begin + Result := FPedidosProveedorController; +end; + +{procedure TInventarioController.GuardarArticulos(AInventario : IBizInventario); +var + AArticulos: IBizInventario; + i: Integer; +begin + + AArticulosUnitarios := Buscar(ID_NULO); + 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 artículos 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 localización unica de tuplas de inventario +// Para así poder utiliza ID para la inserción de movimientos +end; + +function TInventarioController.Guardar(AArticulos: IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; +begin + Result := False; + + if not Assigned(AArticulos) then + raise Exception.Create ('Artículos no asignados'); + + if Validar(AArticulos) then + begin + ShowHourglassCursor; + try + case AArticulos.TipoMovimiento of + tEntradaLibre, tSalidaLibre, tTraslado: Result := GuardarMovimientos(AArticulos, FechaMovimiento, CausaMovimiento); + tSalidaAlbaranCliente : begin + AArticulos.DataTable.CancelUpdates; + Result := True; + end; + tEntradaPedidoProveedor : Result := True; //Dar de alta el albarán + + 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 + //Deshabilitamos el calculo de ID (RECID) para poderlo usar para la inserción 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 realizarán las inserciones + AArticulos.ID := FDataModule.GetNextID(AArticulos.DataTable.LogicalName); + AArticulos.FECHA_MOVIMIENTO := FechaMovimiento; + AArticulos.CAUSA := CausaMovimiento; + case AArticulos.TipoMovimiento of + tEntradaLibre: AArticulos.TIPO := CTE_TIPO_ENTRADA; + tSalidaLibre, tTraslado: AArticulos.TIPO := CTE_TIPO_SALIDA; + end; + + Post; + Next; + end; + + //Solo para traslados, realizaremos los mismos movimientos, pero en este caso + //de entrada en el almacén destino + if (AArticulos.TipoMovimiento = tTraslado) then + begin + AArticulosTraslado := Buscar(ID_NULO); + //Deshabilitamos el calculo de ID (RECID) para poderlo usar para la inserción de movimientos + AArticulosTraslado.DataTable.OnCalcFields := DeshabilitarOnCalcFields; + AArticulosTraslado.DataTable.Active := True; + First; + while not EOF do + begin + AArticulosTraslado.Insert; + AArticulosTraslado.ID := FDataModule.GetNextID(AArticulosTraslado.DataTable.LogicalName); + 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. diff --git a/Source/Modulos/Inventario/Data/Inventario_data.bdsproj b/Source/Modulos/Inventario/Data/Inventario_data.bdsproj new file mode 100644 index 00000000..102b44c8 --- /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.dpk b/Source/Modulos/Inventario/Data/Inventario_data.dpk new file mode 100644 index 00000000..d968db4f --- /dev/null +++ b/Source/Modulos/Inventario/Data/Inventario_data.dpk @@ -0,0 +1,42 @@ +package Inventario_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + Base, + Inventario_model; + +contains + uDataModuleInventario in 'uDataModuleInventario.pas' {DataModuleInventario}; + +end. diff --git a/Source/Modulos/Inventario/Data/Inventario_data.rc b/Source/Modulos/Inventario/Data/Inventario_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Inventario/Data/Inventario_data.res b/Source/Modulos/Inventario/Data/Inventario_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Inventario/Data/Inventario_data.res differ diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm new file mode 100644 index 00000000..7645add6 --- /dev/null +++ b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm @@ -0,0 +1,421 @@ +object DataModuleInventario: TDataModuleInventario + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvInventario' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_INVENTARIO: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_ID' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_ID' + InPrimaryKey = True + Calculated = True + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_REFERENCIA' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_FAMILIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Precio unidad' + Alignment = taRightJustify + DictionaryEntry = 'INVENTARIO_PRECIO_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIDADES_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'U. Almac'#233'n' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_UNIDADES_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COSTE_UNIDADES' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Coste unidades' + Alignment = taRightJustify + DictionaryEntry = 'INVENTARIO_COSTE_UNIDADES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'STOCK' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Stock disponible' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_STOCK' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RESERVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Reservado' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_RESERVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PENDIENTE_RECEPCION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Pendiente de recibir' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_PENDIENTE_RECEPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_CANTIDAD' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_FECHA_MOVIMIENTO' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_FECHA_MOVIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CAUSA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_CAUSA' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_CAUSA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INVENTARIO_TIPO' + Alignment = taLeftJustify + DictionaryEntry = 'INVENTARIO_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'INVENTARIO' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'INVENTARIO' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'INVENTARIO' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'INVENTARIO' + IndexDefs = <> + Left = 280 + Top = 160 + end + object ds_INVENTARIO: TDADataSource + DataTable = tbl_INVENTARIO + Left = 280 + Top = 96 + end +end diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.pas b/Source/Modulos/Inventario/Data/uDataModuleInventario.pas new file mode 100644 index 00000000..34f3aa07 --- /dev/null +++ b/Source/Modulos/Inventario/Data/uDataModuleInventario.pas @@ -0,0 +1,115 @@ +unit uDataModuleInventario; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleInventario, uBizInventario; + +type + TDataModuleInventario = class(TDAClientDataModule, IDataModuleInventario) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_INVENTARIO: TDACDSDataTable; + ds_INVENTARIO: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + procedure AsignarClaseNegocio(var AInventario: TDACDSDataTable); virtual; + function darNombreGenerador(DataSetName: String): String; virtual; + public + function GetItems : IBizInventario; overload; + function GetItems(const ID_ALMACEN : Integer) : IBizInventario; overload; + function GetNextID(const DataSetName : String) : Integer; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schInventarioClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleInventario.AsignarClaseNegocio(var AInventario: TDACDSDataTable); +begin + AInventario.BusinessRulesID := BIZ_CLIENT_INVENTARIO; +end; + +procedure TDataModuleInventario.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleInventario.darNombreGenerador(DataSetName: String): String; +begin + if DataSetName = nme_Inventario then + Result := 'GEN_MOVIMIENTOS_ID'; +end; + +function TDataModuleInventario.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + //Se usará para dar nuevos ids a la tabla de movimientos (Regularizaciones) + aGeneratorName := darNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvInventario).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleInventario._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleInventario.GetItems(const ID_ALMACEN: Integer): IBizInventario; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + + OpenBraket; + AddText(fld_INVENTARIOID_ALMACEN + ' = ' + IntToStr(ID_ALMACEN)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleInventario.GetItems: IBizInventario; +var + AInventario : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AInventario := _CloneDataTable(tbl_Inventario); + AsignarClaseNegocio(AInventario); + Result := (AInventario as IBizInventario); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas new file mode 100644 index 00000000..f0d32d27 --- /dev/null +++ b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas @@ -0,0 +1,18 @@ +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 GetNextID(const DataSetName : String) : Integer; + 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 00000000..e588e615 --- /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.dpk b/Source/Modulos/Inventario/Model/Inventario_model.dpk new file mode 100644 index 00000000..85e3ec93 --- /dev/null +++ b/Source/Modulos/Inventario/Model/Inventario_model.dpk @@ -0,0 +1,43 @@ +package Inventario_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, + dsnap, + dbrtl, + vcldb, + adortl, + DataAbstract_D10, + Articulos_model; + +contains + uBizInventario in 'uBizInventario.pas', + uIDataModuleInventario in 'Data\uIDataModuleInventario.pas', + schInventarioClient_Intf in 'schInventarioClient_Intf.pas', + schInventarioServer_Intf in 'schInventarioServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Inventario/Model/Inventario_model.rc b/Source/Modulos/Inventario/Model/Inventario_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Inventario/Model/Inventario_model.res b/Source/Modulos/Inventario/Model/Inventario_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Inventario/Model/Inventario_model.res differ diff --git a/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas new file mode 100644 index 00000000..e42a096b --- /dev/null +++ b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas @@ -0,0 +1,406 @@ +unit schInventarioClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{524320FC-D24F-497A-AF71-F47F0B218DB1}'; + + { Data table names } + nme_INVENTARIO = 'INVENTARIO'; + + { INVENTARIO fields } + fld_INVENTARIOID = 'ID'; + 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_INVENTARIOPRECIO_NETO = 'PRECIO_NETO'; + fld_INVENTARIOREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_INVENTARIOUNIDADES_ALMACEN = 'UNIDADES_ALMACEN'; + fld_INVENTARIOCOSTE_UNIDADES = 'COSTE_UNIDADES'; + fld_INVENTARIOSTOCK = 'STOCK'; + fld_INVENTARIORESERVA = 'RESERVA'; + fld_INVENTARIOPENDIENTE_RECEPCION = 'PENDIENTE_RECEPCION'; + fld_INVENTARIOCANTIDAD = 'CANTIDAD'; + fld_INVENTARIOFECHA_MOVIMIENTO = 'FECHA_MOVIMIENTO'; + fld_INVENTARIOCAUSA = 'CAUSA'; + fld_INVENTARIOTIPO = 'TIPO'; + + { INVENTARIO field indexes } + idx_INVENTARIOID = 0; + idx_INVENTARIOID_ALMACEN = 1; + idx_INVENTARIOID_ARTICULO = 2; + idx_INVENTARIOALMACEN = 3; + idx_INVENTARIOID_EMPRESA = 4; + idx_INVENTARIOREFERENCIA = 5; + idx_INVENTARIOFAMILIA = 6; + idx_INVENTARIODESCRIPCION = 7; + idx_INVENTARIOPRECIO_NETO = 8; + idx_INVENTARIOREFERENCIA_PROVEEDOR = 9; + idx_INVENTARIOUNIDADES_ALMACEN = 10; + idx_INVENTARIOCOSTE_UNIDADES = 11; + idx_INVENTARIOSTOCK = 12; + idx_INVENTARIORESERVA = 13; + idx_INVENTARIOPENDIENTE_RECEPCION = 14; + idx_INVENTARIOCANTIDAD = 15; + idx_INVENTARIOFECHA_MOVIMIENTO = 16; + idx_INVENTARIOCAUSA = 17; + idx_INVENTARIOTIPO = 18; + +type + { IINVENTARIO } + IINVENTARIO = interface(IDAStronglyTypedDataTable) + ['{010FB413-3B2C-4983-9BBB-AED27F7AA673}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetALMACENValue: String; + procedure SetALMACENValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetPRECIO_NETOValue: Currency; + procedure SetPRECIO_NETOValue(const aValue: Currency); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetUNIDADES_ALMACENValue: Integer; + procedure SetUNIDADES_ALMACENValue(const aValue: Integer); + function GetCOSTE_UNIDADESValue: Currency; + procedure SetCOSTE_UNIDADESValue(const aValue: Currency); + function GetSTOCKValue: Integer; + procedure SetSTOCKValue(const aValue: Integer); + function GetRESERVAValue: Integer; + procedure SetRESERVAValue(const aValue: Integer); + function GetPENDIENTE_RECEPCIONValue: Integer; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Integer); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetFECHA_MOVIMIENTOValue: DateTime; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); + function GetCAUSAValue: String; + procedure SetCAUSAValue(const aValue: String); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ALMACEN: String read GetALMACENValue write SetALMACENValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property UNIDADES_ALMACEN: Integer read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property COSTE_UNIDADES: Currency read GetCOSTE_UNIDADESValue write SetCOSTE_UNIDADESValue; + property STOCK: Integer read GetSTOCKValue write SetSTOCKValue; + property RESERVA: Integer read GetRESERVAValue write SetRESERVAValue; + property PENDIENTE_RECEPCION: Integer read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property FECHA_MOVIMIENTO: DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + end; + + { TINVENTARIODataTableRules } + TINVENTARIODataTableRules = class(TDADataTableRules, IINVENTARIO) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetALMACENValue: String; virtual; + procedure SetALMACENValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetUNIDADES_ALMACENValue: Integer; virtual; + procedure SetUNIDADES_ALMACENValue(const aValue: Integer); virtual; + function GetCOSTE_UNIDADESValue: Currency; virtual; + procedure SetCOSTE_UNIDADESValue(const aValue: Currency); virtual; + function GetSTOCKValue: Integer; virtual; + procedure SetSTOCKValue(const aValue: Integer); virtual; + function GetRESERVAValue: Integer; virtual; + procedure SetRESERVAValue(const aValue: Integer); virtual; + function GetPENDIENTE_RECEPCIONValue: Integer; virtual; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Integer); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetFECHA_MOVIMIENTOValue: DateTime; virtual; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); virtual; + function GetCAUSAValue: String; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ALMACEN: String read GetALMACENValue write SetALMACENValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property UNIDADES_ALMACEN: Integer read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property COSTE_UNIDADES: Currency read GetCOSTE_UNIDADESValue write SetCOSTE_UNIDADESValue; + property STOCK: Integer read GetSTOCKValue write SetSTOCKValue; + property RESERVA: Integer read GetRESERVAValue write SetRESERVAValue; + property PENDIENTE_RECEPCION: Integer read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property FECHA_MOVIMIENTO: DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TINVENTARIODataTableRules } +constructor TINVENTARIODataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TINVENTARIODataTableRules.Destroy; +begin + inherited; +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.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_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.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.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.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.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.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.GetPRECIO_NETOValue: Currency; +begin + result := DataTable.Fields[idx_INVENTARIOPRECIO_NETO].AsCurrency; +end; + +procedure TINVENTARIODataTableRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_INVENTARIOPRECIO_NETO].AsCurrency := aValue; +end; + +function TINVENTARIODataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_INVENTARIOREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TINVENTARIODataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_INVENTARIOREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TINVENTARIODataTableRules.GetUNIDADES_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_INVENTARIOUNIDADES_ALMACEN].AsInteger; +end; + +procedure TINVENTARIODataTableRules.SetUNIDADES_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_INVENTARIOUNIDADES_ALMACEN].AsInteger := aValue; +end; + +function TINVENTARIODataTableRules.GetCOSTE_UNIDADESValue: Currency; +begin + result := DataTable.Fields[idx_INVENTARIOCOSTE_UNIDADES].AsCurrency; +end; + +procedure TINVENTARIODataTableRules.SetCOSTE_UNIDADESValue(const aValue: Currency); +begin + DataTable.Fields[idx_INVENTARIOCOSTE_UNIDADES].AsCurrency := aValue; +end; + +function TINVENTARIODataTableRules.GetSTOCKValue: Integer; +begin + result := DataTable.Fields[idx_INVENTARIOSTOCK].AsInteger; +end; + +procedure TINVENTARIODataTableRules.SetSTOCKValue(const aValue: Integer); +begin + DataTable.Fields[idx_INVENTARIOSTOCK].AsInteger := aValue; +end; + +function TINVENTARIODataTableRules.GetRESERVAValue: Integer; +begin + result := DataTable.Fields[idx_INVENTARIORESERVA].AsInteger; +end; + +procedure TINVENTARIODataTableRules.SetRESERVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_INVENTARIORESERVA].AsInteger := aValue; +end; + +function TINVENTARIODataTableRules.GetPENDIENTE_RECEPCIONValue: Integer; +begin + result := DataTable.Fields[idx_INVENTARIOPENDIENTE_RECEPCION].AsInteger; +end; + +procedure TINVENTARIODataTableRules.SetPENDIENTE_RECEPCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_INVENTARIOPENDIENTE_RECEPCION].AsInteger := aValue; +end; + +function TINVENTARIODataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_INVENTARIOCANTIDAD].AsInteger; +end; + +procedure TINVENTARIODataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_INVENTARIOCANTIDAD].AsInteger := aValue; +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.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.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_INVENTARIOTIPO].AsString; +end; + +procedure TINVENTARIODataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_INVENTARIOTIPO].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_INVENTARIO, TINVENTARIODataTableRules); + +end. diff --git a/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas new file mode 100644 index 00000000..97bce510 --- /dev/null +++ b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas @@ -0,0 +1,475 @@ +unit schInventarioServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{FA283AC8-1AC5-4D13-905D-352FB0617449}'; + +type + { IINVENTARIODelta } + IINVENTARIODelta = interface(IINVENTARIO) + ['{FA283AC8-1AC5-4D13-905D-352FB0617449}'] + { Property getters and setters } + function GetOldIDValue : Integer; + 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 GetOldPRECIO_NETOValue : Currency; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldUNIDADES_ALMACENValue : Integer; + function GetOldCOSTE_UNIDADESValue : Currency; + function GetOldSTOCKValue : Integer; + function GetOldRESERVAValue : Integer; + function GetOldPENDIENTE_RECEPCIONValue : Integer; + function GetOldCANTIDADValue : Integer; + function GetOldFECHA_MOVIMIENTOValue : DateTime; + function GetOldCAUSAValue : String; + function GetOldTIPOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + 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 OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldUNIDADES_ALMACEN : Integer read GetOldUNIDADES_ALMACENValue; + property OldCOSTE_UNIDADES : Currency read GetOldCOSTE_UNIDADESValue; + property OldSTOCK : Integer read GetOldSTOCKValue; + property OldRESERVA : Integer read GetOldRESERVAValue; + property OldPENDIENTE_RECEPCION : Integer read GetOldPENDIENTE_RECEPCIONValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldFECHA_MOVIMIENTO : DateTime read GetOldFECHA_MOVIMIENTOValue; + property OldCAUSA : String read GetOldCAUSAValue; + property OldTIPO : String read GetOldTIPOValue; + end; + + { TINVENTARIOBusinessProcessorRules } + TINVENTARIOBusinessProcessorRules = class(TDABusinessProcessorRules, IINVENTARIO, IINVENTARIODelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetALMACENValue: String; virtual; + function GetOldALMACENValue: String; virtual; + procedure SetALMACENValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + function GetOldFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + function GetOldPRECIO_NETOValue: Currency; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetUNIDADES_ALMACENValue: Integer; virtual; + function GetOldUNIDADES_ALMACENValue: Integer; virtual; + procedure SetUNIDADES_ALMACENValue(const aValue: Integer); virtual; + function GetCOSTE_UNIDADESValue: Currency; virtual; + function GetOldCOSTE_UNIDADESValue: Currency; virtual; + procedure SetCOSTE_UNIDADESValue(const aValue: Currency); virtual; + function GetSTOCKValue: Integer; virtual; + function GetOldSTOCKValue: Integer; virtual; + procedure SetSTOCKValue(const aValue: Integer); virtual; + function GetRESERVAValue: Integer; virtual; + function GetOldRESERVAValue: Integer; virtual; + procedure SetRESERVAValue(const aValue: Integer); virtual; + function GetPENDIENTE_RECEPCIONValue: Integer; virtual; + function GetOldPENDIENTE_RECEPCIONValue: Integer; virtual; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Integer); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetFECHA_MOVIMIENTOValue: DateTime; virtual; + function GetOldFECHA_MOVIMIENTOValue: DateTime; virtual; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); virtual; + function GetCAUSAValue: String; virtual; + function GetOldCAUSAValue: String; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property ALMACEN : String read GetALMACENValue write SetALMACENValue; + property OldALMACEN : String read GetOldALMACENValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property PRECIO_NETO : Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property UNIDADES_ALMACEN : Integer read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property OldUNIDADES_ALMACEN : Integer read GetOldUNIDADES_ALMACENValue; + property COSTE_UNIDADES : Currency read GetCOSTE_UNIDADESValue write SetCOSTE_UNIDADESValue; + property OldCOSTE_UNIDADES : Currency read GetOldCOSTE_UNIDADESValue; + property STOCK : Integer read GetSTOCKValue write SetSTOCKValue; + property OldSTOCK : Integer read GetOldSTOCKValue; + property RESERVA : Integer read GetRESERVAValue write SetRESERVAValue; + property OldRESERVA : Integer read GetOldRESERVAValue; + property PENDIENTE_RECEPCION : Integer read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property OldPENDIENTE_RECEPCION : Integer read GetOldPENDIENTE_RECEPCIONValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property FECHA_MOVIMIENTO : DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property OldFECHA_MOVIMIENTO : DateTime read GetOldFECHA_MOVIMIENTOValue; + property CAUSA : String read GetCAUSAValue write SetCAUSAValue; + property OldCAUSA : String read GetOldCAUSAValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TINVENTARIOBusinessProcessorRules } +constructor TINVENTARIOBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TINVENTARIOBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TINVENTARIOBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOID]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_ALMACEN]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOID_ALMACEN]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_ALMACEN] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_ARTICULO]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOID_ARTICULO]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_ARTICULO] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOALMACEN]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOALMACEN]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOALMACEN] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_EMPRESA]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOID_EMPRESA]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOID_EMPRESA] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOREFERENCIA]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOREFERENCIA]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOREFERENCIA] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOFAMILIA]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOFAMILIA]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOFAMILIA] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIODESCRIPCION]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIODESCRIPCION]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIODESCRIPCION] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOPRECIO_NETO]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOPRECIO_NETO]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOPRECIO_NETO] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOREFERENCIA_PROVEEDOR]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOREFERENCIA_PROVEEDOR]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOREFERENCIA_PROVEEDOR] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetUNIDADES_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOUNIDADES_ALMACEN]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldUNIDADES_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOUNIDADES_ALMACEN]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetUNIDADES_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOUNIDADES_ALMACEN] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetCOSTE_UNIDADESValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCOSTE_UNIDADES]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldCOSTE_UNIDADESValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOCOSTE_UNIDADES]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetCOSTE_UNIDADESValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCOSTE_UNIDADES] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetSTOCKValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOSTOCK]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldSTOCKValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOSTOCK]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetSTOCKValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOSTOCK] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetRESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIORESERVA]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldRESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIORESERVA]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetRESERVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIORESERVA] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetPENDIENTE_RECEPCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOPENDIENTE_RECEPCION]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldPENDIENTE_RECEPCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOPENDIENTE_RECEPCION]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetPENDIENTE_RECEPCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOPENDIENTE_RECEPCION] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCANTIDAD]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOCANTIDAD]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCANTIDAD] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetFECHA_MOVIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOFECHA_MOVIMIENTO]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldFECHA_MOVIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOFECHA_MOVIMIENTO]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetFECHA_MOVIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOFECHA_MOVIMIENTO] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCAUSA]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOCAUSA]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetCAUSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOCAUSA] := aValue; +end; + +function TINVENTARIOBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOTIPO]; +end; + +function TINVENTARIOBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_INVENTARIOTIPO]; +end; + +procedure TINVENTARIOBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_INVENTARIOTIPO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_INVENTARIODelta, TINVENTARIOBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Inventario/Model/uBizInventario.pas b/Source/Modulos/Inventario/Model/uBizInventario.pas new file mode 100644 index 00000000..2a36203c --- /dev/null +++ b/Source/Modulos/Inventario/Model/uBizInventario.pas @@ -0,0 +1,140 @@ +unit uBizInventario; + +interface + +uses + uDAInterfaces, uDADataTable, schInventarioClient_Intf, + uBizArticulos, uDBSelectionListUtils; + +const + BIZ_CLIENT_INVENTARIO = 'Client.Inventario'; + + CTE_TIPO_ENTRADA = 'E'; + CTE_TIPO_SALIDA = 'S'; + +type + TEnumTipoMovimiento = (tEntradaLibre, + tSalidaLibre, + tTraslado, + tEntradaPedidoProveedor, + tSalidaAlbaranCliente); + + 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; + + 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; + + 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, uDACDSDataTable, SysUtils; + +{ TBizInventario } + +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; + + //En función del tipo de operación vamos a coger el IDAlmacenOrigen o IDAlamcenDetino + Case TipoMovimiento of + tEntradaLibre, tEntradaPedidoProveedor : ID_ALMACEN := IDAlmacenDestino; + tSalidaLibre, tSalidaAlbaranCliente, tTraslado : 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; + +initialization + RegisterDataTableRules(BIZ_CLIENT_INVENTARIO, TBizInventario); + +end. diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj b/Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj new file mode 100644 index 00000000..e7e9eeaa --- /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.dpk b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk new file mode 100644 index 00000000..d93196c6 --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk @@ -0,0 +1,41 @@ +package Inventario_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Inventario_controller, + Inventario_view; + +contains + uPluginInventario in 'uPluginInventario.pas'; + +end. diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.rc b/Source/Modulos/Inventario/Plugin/Inventario_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.res b/Source/Modulos/Inventario/Plugin/Inventario_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Inventario/Plugin/Inventario_plugin.res differ diff --git a/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm b/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm new file mode 100644 index 00000000..b741e47a --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm @@ -0,0 +1,138 @@ +object PluginInventario: TPluginInventario + OldCreateOrder = True + DefaultAction = actInventario + 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> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actInventario: TAction + Category = 'Log'#237'stica' + Caption = 'Inventario' + ImageIndex = 0 + OnExecute = actInventarioExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Logstica1: TMenuItem + Caption = 'Log'#237'stica' + object N1: TMenuItem + Tag = 889 + Caption = '-' + end + object Inventario1: TMenuItem + Tag = 103 + Action = actInventario + 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 + 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> + 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 00000000..b21e8da2 --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/uPluginInventario.pas @@ -0,0 +1,75 @@ +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) + actInventario: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Logstica1: TMenuItem; + Inventario1: TMenuItem; + N1: TMenuItem; + procedure actInventarioExecute(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.actInventarioExecute(Sender: TObject); +var + AInventarioController : IInventarioController; + AInventario : IBizInventario; + +begin + AInventarioController := TInventarioController.Create; + AInventario := (AInventarioController.BuscarTodos as IBizInventario); + AInventarioController.VerTodos(AInventario); +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.dfm b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm new file mode 100644 index 00000000..fe8a9cf8 --- /dev/null +++ b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm @@ -0,0 +1,683 @@ +object srvInventario: TsrvInventario + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schInventario + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnAfterGetDatasetData = DARemoteServiceAfterGetDatasetData + Height = 300 + 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, REFERENCIA_PROV as REFE' + + 'RENCIA_PROVEEDOR, PRECIO_NETO, STOCK,'#10' UNIDADES_ALMACEN, COST' + + 'E_UNIDADES, RESERVA, PENDIENTE_RECEPCION,'#10' '#10' /*'#10' NO BOR' + + 'RAR YA QUE SIRVE PARA LAS ENTRADAS Y SALIDAS DE ALMACEN(TABLA MO' + + 'VIMIENTOS)'#10' DEBERIA GENERAR UNA TABLA DE MOVIMIENTOS INDEPEND' + + 'IENTE DEL INVENTARIO PERO POR FALTA'#10' DE TIEMPO Y FIABILIDAD Y' + + 'A QUE AHORA FUNCIONA TODO, CREAMOS ESTOS CAMPOS FICTICIOS'#10' */' + + #10#10' 0 as ID, 0 as CANTIDAD, current_date as FECHA_MOVIMIENTO, ' + + 'NULL as CAUSA, NULL as TIPO'#10#10#10'FROM V_INVENTARIO'#10'ORDER BY ID_ARTI' + + 'CULO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'ALMACEN' + TableField = 'ALMACEN' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'STOCK' + TableField = 'STOCK' + end + item + DatasetField = 'RESERVA' + TableField = 'RESERVA' + end + item + DatasetField = 'PENDIENTE_RECEPCION' + TableField = 'PENDIENTE_RECEPCION' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'FECHA_MOVIMIENTO' + TableField = 'FECHA_MOVIMIENTO' + end + item + DatasetField = 'CAUSA' + TableField = 'CAUSA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'UNIDADES_ALMACEN' + TableField = 'UNIDADES_ALMACEN' + end + item + DatasetField = 'PRECIO_NETO' + TableField = 'PRECIO_NETO' + end + item + DatasetField = 'COSTE_UNIDADES' + TableField = 'COSTE_UNIDADES' + end> + end> + Name = 'INVENTARIO' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_ID' + InPrimaryKey = True + Calculated = True + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_FAMILIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_PRECIO_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIDADES_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_UNIDADES_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COSTE_UNIDADES' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_COSTE_UNIDADES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'STOCK' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_STOCK' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RESERVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_RESERVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PENDIENTE_RECEPCION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_PENDIENTE_RECEPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_FECHA_MOVIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CAUSA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_CAUSA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'INVENTARIO_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CAUSA' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = + 'INSERT'#10' INTO MOVIMIENTOS'#10' (ID, ID_ALMACEN, ID_ARTICULO, FECH' + + 'A_MOVIMIENTO, TIPO, CANTIDAD, CAUSA)'#10' VALUES'#10' (:ID, :ID_ALMA' + + 'CEN, :ID_ARTICULO, :FECHA_MOVIMIENTO, :TIPO, :CANTIDAD, :CAUSA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_INVENTARIO' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = 'DELETE '#10' FROM'#10' MOVIMIENTO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_INVENTARIO' + end + item + Params = < + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CAUSA' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = + 'UPDATE MOVIMIENTOS'#10' SET '#10' ID_ALMACEN = :ID_ALMACEN,'#10' ID_A' + + 'RTICULO = :ID_ARTICULO,'#10' FECHA_MOVIMIENTO = :FECHA_MOVIMIENTO' + + ','#10' TIPO = :TIPO,'#10' CANTIDAD = :CANTIDAD,'#10' CAUSA = :CAUSA' + + #10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_INVENTARIO' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert INVENTARIO' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'INVENTARIO' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update INVENTARIO' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'INVENTARIO' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete INVENTARIO' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'INVENTARIO' + FailureBehaviour = fbRaiseException + end> + 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 DABINAdapter: TDABINAdapter + Left = 40 + Top = 72 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'INVENTARIO_ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ALMACEN' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ALMACEN' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FAMILIA' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCRIPCION' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_STOCK' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Stock disponible' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_RESERVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Reservado' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_PENDIENTE_RECEPCION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Pendiente de recibir' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_FECHA_MOVIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_CAUSA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_REFERENCIA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_UNIDADES_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'U. Almac'#233'n' + Alignment = taLeftJustify + end + item + Name = 'INVENTARIO_PRECIO_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Precio unidad' + Alignment = taRightJustify + end + item + Name = 'INVENTARIO_COSTE_UNIDADES' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Coste unidades' + Alignment = taRightJustify + end> + Left = 126 + Top = 14 + 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 00000000..7606b69b --- /dev/null +++ b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.pas @@ -0,0 +1,79 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDABINAdapter, uDAInterfaces; + +type + { TsrvInventario } + TsrvInventario = class(TDARemoteService, IsrvInventario) + bpInventario: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schInventario: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + private + protected + { IsrvInventario methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + 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 sólo 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvInventario.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +initialization + TROClassFactory.Create('srvInventario', Create_srvInventario, TsrvInventario_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm b/Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm new file mode 100644 index 00000000..a436e48d --- /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 00000000..52479410 --- /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 artículos no disponen de stok suficiente en el almacén 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 00000000..d16ab224 --- /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.dpk b/Source/Modulos/Inventario/Views/Inventario_view.dpk new file mode 100644 index 00000000..b243d79e --- /dev/null +++ b/Source/Modulos/Inventario/Views/Inventario_view.dpk @@ -0,0 +1,94 @@ +package Inventario_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, + dbrtl, + vcldb, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + dsnap, + adortl, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUIBase, + Inventario_model, + Inventario_data, + Inventario_controller, + Almacenes_controller, + Almacenes_model, + JvGlobusD10R, + VclSmp, + vclie, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + Articulos_view, + PedProv_AlbProv_relation; + +contains + uViewInventario in 'uViewInventario.pas' {frViewInventario: TFrame}, + uEditorInventario in 'uEditorInventario.pas' {fEditorInventario: TfEditorInventario}, + uInventarioViewRegister in 'uInventarioViewRegister.pas', + uViewEntradaSalidaArticulos in 'uViewEntradaSalidaArticulos.pas' {frViewEntradaSalidaArticulos: TFrame}, + uEditorEntradaSalidaArticulos in 'uEditorEntradaSalidaArticulos.pas' {fEditorEntradaSalidaArticulos: TfEditorEntradaArticulosInventario}, + uViewElegirArticulosCatalogo in 'uViewElegirArticulosCatalogo.pas' {frViewElegirArticulosCatalogo: TFrame}, + uEditorElegirArticulosCatalogo in 'uEditorElegirArticulosCatalogo.pas' {fEditorElegirArticulosCatalogo: TfEditorElegirArticulosInventario}, + uEditorElegirArticulosAlmacen in 'uEditorElegirArticulosAlmacen.pas' {fEditorElegirArticulosAlmacen: TfEditorElegirArticulosAlmacen}; + +end. diff --git a/Source/Modulos/Inventario/Views/Inventario_view.rc b/Source/Modulos/Inventario/Views/Inventario_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Inventario/Views/Inventario_view.res b/Source/Modulos/Inventario/Views/Inventario_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Inventario/Views/Inventario_view.res differ diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm new file mode 100644 index 00000000..ac096110 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm @@ -0,0 +1,216 @@ +inherited fEditorElegirArticulosAlmacen: TfEditorElegirArticulosAlmacen + Caption = 'Seleccionar art'#237'culos' + ClientWidth = 656 + ExplicitWidth = 664 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 656 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione los art'#237'culos') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitTop = 87 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Caption = 'Lista de art'#237'culos' + Visible = False + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 656 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Align = alLeft + DockPos = -6 + ExplicitWidth = 117 + inherited TBXItem2: 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 + Left = 117 + Top = 23 + Align = alLeft + DockPos = 101 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + Visible = False + ExplicitTop = 527 + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 472 + 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 = 472 + 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 frViewInventario1: TfrViewInventario [5] + Top = 136 + Width = 656 + Height = 336 + ExplicitTop = 136 + ExplicitWidth = 656 + ExplicitHeight = 336 + inherited cxGrid: TcxGrid + Width = 656 + Height = 336 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 656 + ExplicitHeight = 336 + inherited cxGridView: TcxGridDBTableView + 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 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 actTrasladar: 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 [13] + 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 00000000..42fc5339 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.pas @@ -0,0 +1,126 @@ +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, JvgWizardHeader, StdCtrls, + uEditorArticulos, uBizArticulos, uIEditorElegirArticulosAlmacen, + JvExComCtrls, JvStatusBar, uEditorInventario, uViewInventario, uBizInventario, + JSDialog; + +type + TfEditorElegirArticulosAlmacen = class(TfEditorInventario, IEditorElegirArticulosAlmacen) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirArticulosAlmacen.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirArticulosAlmacen.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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.dfm b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm new file mode 100644 index 00000000..96af0d4a --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm @@ -0,0 +1,5 @@ +inherited fEditorElegirArticulosCatalogo: TfEditorElegirArticulosCatalogo + Caption = 'fEditorElegirArticulosCatalogo' + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas new file mode 100644 index 00000000..b01a6fba --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas @@ -0,0 +1,33 @@ +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, + JvgWizardHeader, uIEditorElegirArticulosCatalogo; + +type + TfEditorElegirArticulosCatalogo = class(TfEditorElegirArticulos, IEditorElegirArticulosCatalogo) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosCatalogo; + +{ TfEditorElegirArticulosCatalogo } + +procedure TfEditorElegirArticulosCatalogo.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosCatalogo) as IViewElegirArticulosCatalogo; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm new file mode 100644 index 00000000..1fee1230 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm @@ -0,0 +1,1727 @@ +inherited fEditorEntradaSalidaArticulos: TfEditorEntradaSalidaArticulos + Left = 387 + Top = 196 + Caption = 'Entrada de art'#237'culos en almac'#233'n' + ClientHeight = 556 + OnClose = CustomEditorClose + ExplicitHeight = 590 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Entrada de art'#237'culos en almac'#233'n' + ExplicitWidth = 652 + inherited Image1: TImage + Left = 625 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001914944415478DA63FCFFFF3F + 032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82CF8AFDC50C3 + C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00BC08AE1E0C7 + 0F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C302DC02E4F + A40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B5FA5202CC0 + 2F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF2200340A9089F + 3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9C1DA1D4FF6 + 12994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B0321976158406C3E + 304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264E86CDFC0F0 + E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1C78667585D + 06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF21964C3882E132 + A80504F309381FC02CD87FE30986E1938BE4B1BA0C6401317905545B32C22216 + 062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC3095B4025C3E1 + 16D0BA550100E46DEBE08B969D720000000049454E44AE426082} + ExplicitLeft = 625 + end + end + inherited TBXDock: TTBXDock + ExplicitWidth = 652 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 271 + object TBXItem7: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem4: TTBXSubmenuItem + object TBXItem33: TTBXItem [11] + Action = actGuardarCerrar + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + Visible = False + end + end + end + inherited pgPaginas: TPageControl + Top = 222 + Height = 315 + MultiLine = True + Visible = False + ExplicitTop = 222 + ExplicitWidth = 652 + ExplicitHeight = 315 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 644 + ExplicitHeight = 287 + end + end + inherited StatusBar: TJvStatusBar + Top = 537 + Panels = < + item + Width = 200 + end> + ExplicitTop = 537 + end + inline frViewListaArticulos: TfrViewEntradaSalidaArticulos [4] + AlignWithMargins = True + Left = 3 + Top = 225 + Width = 646 + Height = 309 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Padding.Left = 5 + Padding.Top = 5 + Padding.Right = 5 + Padding.Bottom = 3 + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitLeft = 3 + ExplicitTop = 225 + ExplicitWidth = 646 + ExplicitHeight = 309 + inherited cxGrid: TcxGrid + Left = 5 + Top = 5 + Width = 636 + Height = 301 + ExplicitLeft = 5 + ExplicitTop = 5 + ExplicitWidth = 636 + ExplicitHeight = 301 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnsQuickCustomization = False + OptionsData.Editing = True + OptionsSelection.CellSelect = True + OptionsView.ShowEditButtons = gsebForFocusedRecord + inherited cxGridViewRecID: TcxGridDBColumn + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewID: TcxGridDBColumn + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewID_ARTICULO: TcxGridDBColumn + Visible = False + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewREFERENCIA: TcxGridDBColumn [3] + PropertiesClassName = 'TcxTextEditProperties' + Properties.ReadOnly = True + end + inherited cxGridViewREFERENCIA_PROV: TcxGridDBColumn [4] + end + inherited cxGridViewDESCRIPCION: TcxGridDBColumn [5] + Caption = 'Descripci'#243'n' + Properties.ReadOnly = True + Options.Editing = False + Width = 300 + end + inherited cxGridViewCANTIDAD: TcxGridDBColumn [6] + Caption = 'Cantidad' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.CanEdit = True + Properties.SpinButtons.Position = sbpVert + Properties.SpinButtons.ShowFastButtons = False + Properties.ValidateOnEnter = True + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Styles.Content = frViewListaArticulos.cxStyleFiltered + end + inherited cxGridViewSTOCK: TcxGridDBColumn [7] + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + inherited cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn [8] + Visible = False + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewID_PEDIDO_CLIENTE: TcxGridDBColumn [9] + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewREFERENCIA_PED_CLI: TcxGridDBColumn [10] + Styles.Content = frViewListaArticulos.cxStyleOdd + end + inherited cxGridViewID_EMPRESA: TcxGridDBColumn [11] + Styles.Content = frViewListaArticulos.cxStyleOdd + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewListaArticulos.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + object ToolBar1: TToolBar [5] + AlignWithMargins = True + Left = 5 + Top = 192 + Width = 642 + 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 = 5 + Transparent = True + object ToolButton1: TToolButton + Left = 0 + Top = 2 + Action = actAnadirInventario + AutoSize = True + end + object ToolButton2: TToolButton + Left = 112 + Top = 2 + Action = actEliminarInventario + AutoSize = True + end + object ToolButton6: TToolButton + Left = 235 + Top = 2 + Width = 8 + Caption = 'ToolButton6' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton7: TToolButton + Left = 243 + Top = 2 + Action = actAnchoAuto + AutoSize = True + end + end + object TBXDockPaneles: TTBXDock [6] + Left = 0 + Top = 76 + Width = 652 + Height = 114 + object pnlMovimiento: TTBXDockablePanel + Left = 0 + Top = 57 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 53 + DockMode = dmCannotFloat + DockPos = 88 + DockRow = 2 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + DesignSize = ( + 648 + 53) + object Label1: TLabel + Left = 266 + Top = 17 + Width = 36 + Height = 13 + Caption = 'Motivo:' + end + object Label2: TLabel + Left = 8 + Top = 17 + Width = 107 + Height = 13 + Caption = 'Fecha del movimiento:' + Color = 16054521 + ParentColor = False + end + object eFechaMovimiento: TcxDateEdit + Left = 122 + 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] + 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 = 850 + end + end + object pnlEntradaPedido: TTBXDockablePanel + Left = 0 + Top = 0 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 53 + DockMode = dmCannotFloat + DockPos = 88 + DockRow = 2 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 1 + Visible = False + object Label3: TLabel + Left = 266 + Top = 17 + Width = 36 + Height = 13 + Caption = 'Motivo:' + end + object Label4: TLabel + Left = 8 + Top = 17 + Width = 107 + Height = 13 + Caption = 'Fecha del movimiento:' + Color = 16054521 + ParentColor = False + end + end + end + inherited EditorActionList: TActionList [7] + Top = 80 + 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 = 80 + 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 00000000..22880640 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas @@ -0,0 +1,270 @@ +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; + +type + TfEditorEntradaSalidaArticulos = class(TfEditorDBItem, IEditorEntradaSalidaArticulos) + frViewListaArticulos: TfrViewEntradaSalidaArticulos; + 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; + 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 artículos de entrada o salida + FInventario: IBizInventario; //Para sacar el stock + function GetArticulos: IBizInventario; + procedure SetArticulos(const Value: IBizInventario); + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + 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 ResultadoModalOK: Boolean read getResultadoModalOK; + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses uEditorBase, uBizAlmacenes, 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.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; + + frViewListaArticulos.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.actAnadirInventarioExecute(Sender: TObject); +begin + //Todos los cambios serán 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; +end; + +procedure TfEditorEntradaSalidaArticulos.FormShow(Sender: TObject); +var + AAlmacenOrigen: IBizAlmacen; + AAlmacenDestino: IBizAlmacen; +begin + inherited; + + FTitulo := ''; + if Assigned(FArticulos) then + begin + //Titulos + try + AAlmacenOrigen := Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenOrigen); + AAlmacenDestino:= Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenDestino); + AAlmacenOrigen.DataTable.Active := True; + AAlmacenDestino.DataTable.Active := True; + + case FArticulos.TipoMovimiento of + tEntradaLibre, tEntradaPedidoProveedor : + begin + FTitulo := 'Entrada de artículos en el almacén "' + AAlmacenDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la entrada de los artículos'; + end; + tSalidaLibre, tSalidaAlbaranCliente : + begin + FTitulo := 'Salida de artículos en el almacén "' + AAlmacenOrigen.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la salida de los artículos'; + end; + tTraslado: + begin + FTitulo := 'Traslado de artículos desde el almacén "' + AAlmacenOrigen.NOMBRE + '" hasta el almacén "' + AAlmacenDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar el traslado de los artículos'; + end; + end; + finally + AAlmacenOrigen := Nil; + AAlmacenDestino:= Nil; + end; + + //Botones de añadir y eliminar + case FArticulos.TipoMovimiento of + tEntradaLibre, tSalidaLibre, tTraslado : + begin + pnlEntradaPedido.Visible := False; + pnlMovimiento.Visible := True; + eFechaMovimiento.Date := Date; + actAnadirInventario.Enabled := True; + actAnadirInventario.Visible := True; + actEliminarInventario.Enabled := True; + actEliminarInventario.Visible := True; + frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := False; + end; + tEntradaPedidoProveedor, tSalidaAlbaranCliente : + begin + pnlMovimiento.Visible := False; + + if (FArticulos.TipoMovimiento = tEntradaPedidoProveedor) then + begin + //pnlEntradaPedido.Visible := True;} + pnlEntradaPedido.Visible := False; + ToolBar1.Visible := False; + end; + + actAnadirInventario.Enabled := False; + actAnadirInventario.Visible := False; + actEliminarInventario.Enabled := False; + actEliminarInventario.Visible := False; + if (FArticulos.TipoMovimiento = tSalidaAlbaranCliente) then + frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := True + else + frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := False; + end; + end; + + end; +end; + +procedure TfEditorEntradaSalidaArticulos.actAnchoAutoExecute(Sender: TObject); +begin + frViewListaArticulos.cxGridView.ApplyBestFit; +end; + +procedure TfEditorEntradaSalidaArticulos.actEliminarInventarioExecute(Sender: TObject); +begin + //Todos los cambios serán 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.dfm b/Source/Modulos/Inventario/Views/uEditorInventario.dfm new file mode 100644 index 00000000..8ec68931 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorInventario.dfm @@ -0,0 +1,2150 @@ +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 + end + inherited TBXDock: TTBXDock + Width = 669 + ExplicitWidth = 669 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 659 + 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 = 260 + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 669 + 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 = 291 + ExplicitWidth = 669 + ExplicitHeight = 291 + 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> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 669 + ExplicitWidth = 669 + inherited TBXDock1: TTBXDock + Width = 669 + ExplicitWidth = 669 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 669 + inherited dxLayoutControl1: TdxLayoutControl + Width = 665 + ExplicitWidth = 665 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 410 + ExplicitLeft = 410 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 665 + ExplicitWidth = 665 + inherited tbxBotones: TTBXToolbar + Width = 655 + ExplicitWidth = 655 + end + 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 dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.788061157410000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewInventario1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + end + inherited EditorActionList: TActionList [4] + Left = 88 + 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 + end + object actTrasladar: TAction + Category = 'Logistica' + Caption = 'Trasladar' + ImageIndex = 23 + OnExecute = actTrasladarExecute + OnUpdate = actTrasladarUpdate + end + object actReservar: TAction + Category = 'Logistica' + Caption = 'Reservar' + ImageIndex = 25 + Visible = False + OnExecute = actReservarExecute + OnUpdate = actReservarUpdate + end + object actLiberar: TAction + Category = 'Logistica' + Caption = 'Liberar' + ImageIndex = 26 + Visible = False + OnExecute = actLiberarExecute + OnUpdate = actLiberarUpdate + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir' + Visible = False + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer' + Visible = False + OnExecute = actContraerExecute + 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 + 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/Inventario/Views/uEditorInventario.pas b/Source/Modulos/Inventario/Views/uEditorInventario.pas new file mode 100644 index 00000000..27aafdd0 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorInventario.pas @@ -0,0 +1,341 @@ +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; + +type + + TfEditorInventario = class(TfEditorGridBase, IEditorInventario) + actRecibirPedido: TAction; + actTrasladar: TAction; + actReservar: TAction; + actLiberar: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + rasladar1: TMenuItem; + Liberar1: TMenuItem; + Reservar1: TMenuItem; + actExpandir: TAction; + actContraer: TAction; + frViewInventario1: TfrViewInventario; + JsElegirAlmacenDialog: TJSDialog; + 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 actReservarUpdate(Sender: TObject); + procedure actLiberarUpdate(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + + procedure FormShow(Sender: TObject); + + private + function SeleccionarAlmacen(Descripcion: String): Integer; + function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + + protected + FInventario: IBizInventario; + FController : IInventarioController; + + 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 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 + cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios, + uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, + uAlmacenesController, uBizAlmacenes, uGenerarAlbaranesProvUtils; + +{, uDBSelectionList, uDataModulePedidosProveedor, +uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes; +} + + +{ TfEditorInventario } + +{ +***************************** TfEditorInventario ***************************** +} +constructor TfEditorInventario.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewInventario1; +end; + +function TfEditorInventario.DarIDAlmacenSeleccionado(Descripcion: String): Integer; +var + AAlmacenes : IBizAlmacen; + AAlmacenesController : IAlmacenesController; + Respuesta : integer; +begin + if (ViewGrid._Grid.ActiveLevel.Tag = -1) then + Result := SeleccionarAlmacen(Descripcion) + else + Result := ViewGrid._Grid.ActiveLevel.Tag; +end; + +destructor TfEditorInventario.Destroy; +begin + FInventario := NIL; + inherited; +end; + +procedure TfEditorInventario.EliminarInterno; +var + IDAlmacenOrigen: Integer; +begin + IDAlmacenOrigen := darIDAlmacenSeleccionado('Elija el almacén donde se realizará la salida'); + if IDAlmacenOrigen <> -1 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 ningún inventario asignado'); + + Inventario.DataTable.Active := True; + actContraer.Execute; + ViewGrid.GotoFirst; +end; + +procedure TfEditorInventario.actModificarExecute(Sender: TObject); +begin +// inherited; +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; + +procedure TfEditorInventario.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorInventario.NuevoInterno; +var + IDAlmacenDestino: Integer; +begin + IDAlmacenDestino := darIDAlmacenSeleccionado('Elija el almacén donde se realizará la entrada'); + if IDAlmacenDestino <> -1 then + begin + FController.EntradaArticulosLibre(FInventario, IDAlmacenDestino); + RefrescarInterno; + end; +end; + +procedure TfEditorInventario.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Inventario de articulos en almacenes - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorInventario.PrevisualizarInterno; +begin + inherited; +end; + +function TfEditorInventario.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 IViewInventario).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 añadido al menos un item + Items[0].Checked := True; + AAlmacenes.Next; + end; + end; + + //Sacar la pantalla de selección y devolver el almacén seleccionado. + Respuesta := JsElegirAlmacenDialog.Execute; + if Respuesta <> IDCANCEL then + Result := JsElegirAlmacenDialog.RadioResult - 1000; +end; + +procedure TfEditorInventario.SetController(const Value: IInventarioController); +begin + FController := Value; + + if Assigned(FController) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewInventario).Almacenes := FController.AlmacenesController.BuscarTodos; + end; +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.actRecibirPedidoExecute(Sender: TObject); +begin + inherited; + RecibirPedidoProv; + RefrescarInterno; +end; + +procedure TfEditorInventario.actTrasladarExecute(Sender: TObject); +var + IDAlmacenOrigen, IDAlmacenDestino: Integer; +begin + IDAlmacenOrigen := DarIDAlmacenSeleccionado('Elija el almacén de origen (de donde salen los artículos)'); + if IDAlmacenOrigen <> -1 then + begin + IDAlmacenDestino := SeleccionarAlmacen('Elija el almacén de destino (donde entran los artículos)'); + if IDAlmacenDestino <> -1 then + begin + FController.TrasladarArticulosLibre(FInventario, IDAlmacenOrigen, IDAlmacenDestino); + RefrescarInterno; + end; + end; +end; + +procedure TfEditorInventario.actReservarExecute(Sender: TObject); +begin + Controller.Reservar(Inventario); + RefrescarInterno; +end; + +procedure TfEditorInventario.actContraerExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.ContraerTodo; +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 Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +} +end; + +procedure TfEditorInventario.actReservarUpdate(Sender: TObject); +begin + inherited; +{ + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; + } +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. + diff --git a/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas b/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas new file mode 100644 index 00000000..f7fcb3de --- /dev/null +++ b/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas @@ -0,0 +1,30 @@ +unit uInventarioViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorInventario, uEditorEntradaSalidaArticulos, + uEditorElegirArticulosCatalogo, uEditorElegirArticulosAlmacen; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorInventario, 'EditorInventario'); + EditorRegistry.RegisterClass(TfEditorEntradaSalidaArticulos, 'EditorEntradaSalidaArticulos'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosCatalogo, 'EditorElegirArticulosCatalogo'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosAlmacen, 'EditorElegirArticulosAlmacen'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorInventario); + EditorRegistry.UnRegisterClass(TfEditorEntradaSalidaArticulos); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosCatalogo); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlmacen); +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm new file mode 100644 index 00000000..87ec799a --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm @@ -0,0 +1,23 @@ +inherited frViewElegirArticulosCatalogo: TfrViewElegirArticulosCatalogo + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_COSTE: TcxGridDBColumn + Visible = False + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_NETO: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + 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 00000000..51419102 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.pas @@ -0,0 +1,26 @@ +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid; + +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.dfm b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm new file mode 100644 index 00000000..2f700464 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm @@ -0,0 +1,64 @@ +inherited frViewEntradaSalidaArticulos: TfrViewEntradaSalidaArticulos + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID_ALMACEN;ID_ARTICULO' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost] + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object cxGridViewID_ARTICULO: TcxGridDBColumn + DataBinding.FieldName = 'ID_ARTICULO' + end + object cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PEDIDO_PROVEEDOR' + 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 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewREFERENCIA_PROV: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + PropertiesClassName = 'TcxRichEditProperties' + end + object cxGridViewCANTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewSTOCK: TcxGridDBColumn + Caption = 'Stock actual' + DataBinding.FieldName = 'STOCK' + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + 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 00000000..155ca278 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas @@ -0,0 +1,78 @@ +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, dxPScxGridLnk, + uAlmacenesController, uBizAlmacenes, TB2Item, TBX, TB2Dock, TB2Toolbar, + uDataModuleInventario, cxRichEdit, cxTextEdit; + +type + IViewViewEntradaSalidaArticulos = interface(IViewGrid) + ['{71338ADF-30FD-44AA-974F-8270D228268B}'] +// 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; + 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;} + +end. diff --git a/Source/Modulos/Inventario/Views/uViewInventario.dfm b/Source/Modulos/Inventario/Views/uViewInventario.dfm new file mode 100644 index 00000000..62e78d7f --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewInventario.dfm @@ -0,0 +1,206 @@ +inherited frViewInventario: TfrViewInventario + inherited cxGrid: TcxGrid + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID_ALMACEN; ID_ARTICULO' + 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> + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.GroupBySorting = True + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewID_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'ID_ALMACEN' + Visible = False + end + object cxGridViewFAMILIA: TcxGridDBColumn + Caption = 'Familia' + DataBinding.FieldName = 'FAMILIA' + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + end + object cxGridViewSTOCK: TcxGridDBColumn + DataBinding.FieldName = 'STOCK' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewALMACEN: TcxGridDBColumn + Caption = 'Almac'#233'n' + DataBinding.FieldName = 'ALMACEN' + end + object cxGridViewUNIDADES_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'UNIDADES_ALMACEN' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_NETO: TcxGridDBColumn + DataBinding.FieldName = 'PRECIO_NETO' + PropertiesClassName = 'TcxCurrencyEditProperties' + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewCOSTE_UNIDADES: TcxGridDBColumn + DataBinding.FieldName = 'COSTE_UNIDADES' + PropertiesClassName = 'TcxCurrencyEditProperties' + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewRESERVA: TcxGridDBColumn + DataBinding.FieldName = 'RESERVA' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + end + object cxGridViewPENDIENTE_RECEPCION: TcxGridDBColumn + DataBinding.FieldName = 'PENDIENTE_RECEPCION' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + 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 TBXDock1: TTBXDock + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 550 + 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 + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svFont] + end + inherited cxStyleOdd: TcxStyle + AssignedValues = [svColor, svFont] + end + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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/uViewInventario.pas b/Source/Modulos/Inventario/Views/uViewInventario.pas new file mode 100644 index 00000000..4f25be65 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewInventario.pas @@ -0,0 +1,176 @@ +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, dxPScxGridLnk, cxImage, + cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox, + cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid, + uBizInventario, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit; + +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: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + end; + + TfrViewInventario = class(TfrViewGrid, IViewInventario) + cxGridDBTableView1: TcxGridDBTableView; + PngImageList: TPngImageList; + 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; + + 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; + FInventario: IBizInventario; + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + procedure AnadirOtrosFiltros; override; + + public + property Inventario: IBizInventario read GetInventario write SetInventario; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleInventario, schInventarioClient_Intf; + +procedure TfrViewInventario.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); + cxGridViewALMACEN.Visible := False; + end + else + cxGridViewALMACEN.Visible := True; +end; + +procedure TfrViewInventario.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 TfrViewInventario.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +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 := cxStyleArticuloSinStock; + end; +end; + +destructor TfrViewInventario.Destroy; +begin + FAlmacenes := Nil; + FInventario := Nil; + inherited; +end; + +function TfrViewInventario.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +function TfrViewInventario.GetInventario: IBizInventario; +begin + Result := FInventario; +end; + +procedure TfrViewInventario.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 TfrViewInventario.SetInventario(const Value: IBizInventario); +begin + FInventario := Value; + if Assigned(FInventario) then + dsDataSource.DataTable := FInventario.DataTable + else + dsDataSource.DataTable := Nil; +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 00000000..a37747ce 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 00000000..9381b8b1 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 00000000..1640eb94 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 00000000..6e7178fa 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 00000000..7e6b211b 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 00000000..2b1156dc 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 00000000..a18cfee5 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 00000000..b4c0a90f 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 00000000..19007cfb 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 00000000..fc64c203 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 00000000..500efdfb 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 00000000..904c9e06 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 00000000..8099efee 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 00000000..540f1ee6 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 00000000..0afecc45 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 00000000..37514415 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 00000000..aeb92750 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 00000000..3f7b1348 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 00000000..020f5007 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 00000000..6ff8cc73 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 00000000..7be4e40f 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 00000000..ec19ec01 Binary files /dev/null and b/Source/Modulos/Lib/Articulos_view.dcp differ diff --git a/Source/Modulos/Lib/BancaElectronica_controller.dcp b/Source/Modulos/Lib/BancaElectronica_controller.dcp new file mode 100644 index 00000000..b9a45c52 Binary files /dev/null and b/Source/Modulos/Lib/BancaElectronica_controller.dcp differ diff --git a/Source/Modulos/Lib/BancaElectronica_plugin.dcp b/Source/Modulos/Lib/BancaElectronica_plugin.dcp new file mode 100644 index 00000000..f55db036 Binary files /dev/null and b/Source/Modulos/Lib/BancaElectronica_plugin.dcp differ diff --git a/Source/Modulos/Lib/BancaElectronica_view.dcp b/Source/Modulos/Lib/BancaElectronica_view.dcp new file mode 100644 index 00000000..dd075b74 Binary files /dev/null and b/Source/Modulos/Lib/BancaElectronica_view.dcp differ diff --git a/Source/Modulos/Lib/Comisiones_controller.dcp b/Source/Modulos/Lib/Comisiones_controller.dcp new file mode 100644 index 00000000..7a35d17b Binary files /dev/null and b/Source/Modulos/Lib/Comisiones_controller.dcp differ diff --git a/Source/Modulos/Lib/Comisiones_data.dcp b/Source/Modulos/Lib/Comisiones_data.dcp new file mode 100644 index 00000000..865e8f9b Binary files /dev/null and b/Source/Modulos/Lib/Comisiones_data.dcp differ diff --git a/Source/Modulos/Lib/Comisiones_model.dcp b/Source/Modulos/Lib/Comisiones_model.dcp new file mode 100644 index 00000000..fa2f8a38 Binary files /dev/null and b/Source/Modulos/Lib/Comisiones_model.dcp differ diff --git a/Source/Modulos/Lib/Comisiones_plugin.dcp b/Source/Modulos/Lib/Comisiones_plugin.dcp new file mode 100644 index 00000000..7eb8c482 Binary files /dev/null and b/Source/Modulos/Lib/Comisiones_plugin.dcp differ diff --git a/Source/Modulos/Lib/Comisiones_view.dcp b/Source/Modulos/Lib/Comisiones_view.dcp new file mode 100644 index 00000000..40ca9551 Binary files /dev/null and b/Source/Modulos/Lib/Comisiones_view.dcp differ diff --git a/Source/Modulos/Lib/Contactos_controller.dcp b/Source/Modulos/Lib/Contactos_controller.dcp new file mode 100644 index 00000000..b1cf9e56 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 00000000..45b9b3df 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 00000000..543b327a 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 00000000..c4613d9c 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 00000000..70aa00f3 Binary files /dev/null and b/Source/Modulos/Lib/Contactos_view.dcp differ diff --git a/Source/Modulos/Lib/Empresas_controller.dcp b/Source/Modulos/Lib/Empresas_controller.dcp new file mode 100644 index 00000000..0d7294db Binary files /dev/null and b/Source/Modulos/Lib/Empresas_controller.dcp differ diff --git a/Source/Modulos/Lib/Empresas_data.dcp b/Source/Modulos/Lib/Empresas_data.dcp new file mode 100644 index 00000000..951e4407 Binary files /dev/null and b/Source/Modulos/Lib/Empresas_data.dcp differ diff --git a/Source/Modulos/Lib/Empresas_model.dcp b/Source/Modulos/Lib/Empresas_model.dcp new file mode 100644 index 00000000..9268b290 Binary files /dev/null and b/Source/Modulos/Lib/Empresas_model.dcp differ diff --git a/Source/Modulos/Lib/Empresas_plugin.dcp b/Source/Modulos/Lib/Empresas_plugin.dcp new file mode 100644 index 00000000..22a2f648 Binary files /dev/null and b/Source/Modulos/Lib/Empresas_plugin.dcp differ diff --git a/Source/Modulos/Lib/Empresas_view.dcp b/Source/Modulos/Lib/Empresas_view.dcp new file mode 100644 index 00000000..0e5185f1 Binary files /dev/null and b/Source/Modulos/Lib/Empresas_view.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_controller.dcp b/Source/Modulos/Lib/FacturasCliente_controller.dcp new file mode 100644 index 00000000..f0b34485 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 00000000..98418829 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 00000000..8a64d92e 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 00000000..430cdb82 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 00000000..8663dfc0 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 00000000..b90d5169 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 00000000..ab4c5bbb 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 00000000..56c47bc6 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 00000000..3d10441c 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 00000000..c7f73e83 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 00000000..d233259c 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 00000000..97b5ae4d 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 00000000..4c6f9205 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 00000000..f25ddb14 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 00000000..23c4fd5c 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 00000000..be35bfc9 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 00000000..959f36da 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 00000000..3d108863 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 00000000..f417da43 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 00000000..6e6e5900 Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_view.dcp differ diff --git a/Source/Modulos/Lib/Inventario_controller.dcp b/Source/Modulos/Lib/Inventario_controller.dcp new file mode 100644 index 00000000..9bf70ab3 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 00000000..a2106ace 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 00000000..d4f0a020 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 00000000..2e7a6f0b 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 00000000..f48d9441 Binary files /dev/null and b/Source/Modulos/Lib/Inventario_view.dcp differ diff --git a/Source/Modulos/Lib/PedCli_AlbCli_relation.dcp b/Source/Modulos/Lib/PedCli_AlbCli_relation.dcp new file mode 100644 index 00000000..26eec03b Binary files /dev/null and b/Source/Modulos/Lib/PedCli_AlbCli_relation.dcp differ diff --git a/Source/Modulos/Lib/PedCli_PedProv_relation.dcp b/Source/Modulos/Lib/PedCli_PedProv_relation.dcp new file mode 100644 index 00000000..9765b15e Binary files /dev/null and b/Source/Modulos/Lib/PedCli_PedProv_relation.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 00000000..907245d7 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 00000000..e19e9ac1 Binary files /dev/null and b/Source/Modulos/Lib/PedProv_FacProv_relation.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_controller.dcp b/Source/Modulos/Lib/PedidosCliente_controller.dcp new file mode 100644 index 00000000..90978518 Binary files /dev/null and b/Source/Modulos/Lib/PedidosCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_data.dcp b/Source/Modulos/Lib/PedidosCliente_data.dcp new file mode 100644 index 00000000..32c1734c Binary files /dev/null and b/Source/Modulos/Lib/PedidosCliente_data.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_model.dcp b/Source/Modulos/Lib/PedidosCliente_model.dcp new file mode 100644 index 00000000..c101b6e3 Binary files /dev/null and b/Source/Modulos/Lib/PedidosCliente_model.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_plugin.dcp b/Source/Modulos/Lib/PedidosCliente_plugin.dcp new file mode 100644 index 00000000..6bb9d46d Binary files /dev/null and b/Source/Modulos/Lib/PedidosCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_view.dcp b/Source/Modulos/Lib/PedidosCliente_view.dcp new file mode 100644 index 00000000..71ff436c Binary files /dev/null and b/Source/Modulos/Lib/PedidosCliente_view.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_controller.dcp b/Source/Modulos/Lib/PedidosProveedor_controller.dcp new file mode 100644 index 00000000..e113fd15 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 00000000..91ad4911 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 00000000..be3fb52d 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 00000000..f913a891 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 00000000..f47bc8c9 Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_controller.dcp b/Source/Modulos/Lib/RecibosCliente_controller.dcp new file mode 100644 index 00000000..319ec31d 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 00000000..1ba2f2a3 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 00000000..2cd9e289 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 00000000..5d790a45 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 00000000..2d148d9c 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 00000000..50a06fa7 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 00000000..37ce7039 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 00000000..143da279 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 00000000..c7f57ac4 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 00000000..e0b1731c Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_controller.dcp b/Source/Modulos/Lib/RemesasCliente_controller.dcp new file mode 100644 index 00000000..7eb4fd73 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 00000000..542b325e 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 00000000..6f62c025 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 00000000..a3647e72 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 00000000..f0f9da64 Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_view.dcp differ diff --git a/Source/Modulos/Lib/TiendaWeb_controller.dcp b/Source/Modulos/Lib/TiendaWeb_controller.dcp new file mode 100644 index 00000000..528afe97 Binary files /dev/null and b/Source/Modulos/Lib/TiendaWeb_controller.dcp differ diff --git a/Source/Modulos/Lib/TiendaWeb_data.dcp b/Source/Modulos/Lib/TiendaWeb_data.dcp new file mode 100644 index 00000000..3a9fc81f Binary files /dev/null and b/Source/Modulos/Lib/TiendaWeb_data.dcp differ diff --git a/Source/Modulos/Lib/TiendaWeb_model.dcp b/Source/Modulos/Lib/TiendaWeb_model.dcp new file mode 100644 index 00000000..c680a07d Binary files /dev/null and b/Source/Modulos/Lib/TiendaWeb_model.dcp differ diff --git a/Source/Modulos/Lib/TiendaWeb_plugin.dcp b/Source/Modulos/Lib/TiendaWeb_plugin.dcp new file mode 100644 index 00000000..76b08c45 Binary files /dev/null and b/Source/Modulos/Lib/TiendaWeb_plugin.dcp differ diff --git a/Source/Modulos/Lib/TiendaWeb_view.dcp b/Source/Modulos/Lib/TiendaWeb_view.dcp new file mode 100644 index 00000000..8b3d64b7 Binary files /dev/null and b/Source/Modulos/Lib/TiendaWeb_view.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_controller.dcp b/Source/Modulos/Lib/TiposIVA_controller.dcp new file mode 100644 index 00000000..1e838405 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 00000000..41811efd 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 00000000..35870749 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 00000000..98037c08 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 00000000..9cb0c758 Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_view.dcp differ diff --git a/Source/Modulos/Lib/Usuarios.dcp b/Source/Modulos/Lib/Usuarios.dcp new file mode 100644 index 00000000..5fcef249 Binary files /dev/null and b/Source/Modulos/Lib/Usuarios.dcp differ 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 00000000..d57cb437 --- /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.dpk b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk new file mode 100644 index 00000000..7bf5b725 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk @@ -0,0 +1,69 @@ +package PedidosProveedor_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUIBase, + ControllerBase, + Contactos_controller, + PedidosProveedor_model, + PedidosProveedor_data, + dsnap, + vcldb, + adortl, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + Articulos_controller; + +contains + uPedidosProveedorController in 'uPedidosProveedorController.pas', + uDetallesPedidoProveedorController in 'uDetallesPedidoProveedorController.pas', + uIEditorPedidosProveedor in 'View\uIEditorPedidosProveedor.pas', + uIEditorPedidoProveedor in 'View\uIEditorPedidoProveedor.pas', + uPedidosProveedorReportController in 'uPedidosProveedorReportController.pas', + uIEditorPedidosProveedorPreview in 'View\uIEditorPedidosProveedorPreview.pas', + uIEditorElegirPedidosProveedor in 'View\uIEditorElegirPedidosProveedor.pas', + uArticulosPedidoProveedorController in 'uArticulosPedidoProveedorController.pas', + uIEditorElegirArticulosPedidosProveedor in 'View\uIEditorElegirArticulosPedidosProveedor.pas', + uIEditorDireccionEntregaPedidoProveedor in 'View\uIEditorDireccionEntregaPedidoProveedor.pas', + uIEditorSituacionPedidoProveedor in 'View\uIEditorSituacionPedidoProveedor.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.pas new file mode 100644 index 00000000..38d5bdb3 --- /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.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas new file mode 100644 index 00000000..09f099e8 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosPedidosProveedor; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosPedidosProveedor = interface(IEditorElegirArticulos) + ['{4016D4CD-8C0C-494A-9CC4-256E3A00EAD3}'] + end; + + +implementation + +end. 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 00000000..338f14f2 --- /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.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.pas new file mode 100644 index 00000000..cf3f76ba --- /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.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.pas new file mode 100644 index 00000000..a8202406 --- /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.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas new file mode 100644 index 00000000..fc17711c --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorPedidosProveedorPreview; + +interface + +uses + uEditorPreview; + +type + IEditorPedidosProveedorPreview = interface(IEditorPreview) + ['{9B638488-5156-4FDA-BD85-524DC1D6F6A6}'] + end; + + +implementation + +end. 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 00000000..7c79ce7e --- /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.pas b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas new file mode 100644 index 00000000..3cbd39dc --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas @@ -0,0 +1,47 @@ +unit uArticulosPedidoProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosPedidoProveedorController = interface(IArticulosController) + ['{8C8A8D8D-82D2-4434-81C3-36E4F43F3B3E}'] + end; + + TArticulosPedidoProveedorController = class(TArticulosController, IArticulosPedidoProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosPedidoProveedorController } + +uses Controls, uIEditorElegirArticulosPedidosProveedor, uIEditorElegirArticulos; + +function TArticulosPedidoProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosPedidosProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosPedidoProveedor', IEditorElegirArticulosPedidosProveedor, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. 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 00000000..4e1930d6 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.pas @@ -0,0 +1,129 @@ +unit uDetallesPedidoProveedorController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesPedidoProveedor, uIDataModulePedidosProveedor, + uBizArticulos, uBizContactos; + +type + IDetallesPedidoProveedorController = interface(IControllerDetallesArticulos) + ['{942428EC-BCB8-4C56-BFA6-EB9F05D5E0DB}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + function ArticulosPendientes(const ID : Integer): IBizDetallesPedidoProveedorPend; + end; + + TDetallesPedidoProveedorController = class(TControllerDetallesArticulos, IDetallesPedidoProveedorController) + private + FDataModule : IDataModulePedidosProveedor; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure AsignarController; override; + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + function ArticulosPendientes(const ID : Integer): IBizDetallesPedidoProveedorPend; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Variants, uControllerDetallesBase, uControllerDetallesDTO, uDataModulePedidosProveedor, + schArticulosClient_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); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + AArticulos := (FArticulosController as IArticulosPedidoProveedorController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este pedido a proveedor', True); + Add(ADetalles, AArticulos); + 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; + +procedure TDetallesPedidoProveedorController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesPedidoProveedor) do + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_PEDIDO := IDCabecera; + Post + end; +end; + +constructor TDetallesPedidoProveedorController.Create; +begin + inherited; + FDataModule := TDataModulePedidosProveedor.Create(Nil); +end; + +destructor TDetallesPedidoProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesPedidoProveedorController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +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.pas b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas new file mode 100644 index 00000000..bc64c433 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas @@ -0,0 +1,675 @@ +unit uPedidosProveedorController; + +interface + + +uses + SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModulePedidosProveedor, uProveedoresController, + uDetallesPedidoProveedorController, uBizPedidosProveedor; + +type + IPedidosProveedorController = interface(IObservador) + ['{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; + function BuscarPendientesRecepcion: IBizPedidoProveedor; + procedure Ver(APedido : IBizPedidoProveedor); + procedure VerTodos(APedidos: IBizPedidoProveedor); + procedure VerDireccionEntrega(APedido : IBizPedidoProveedor); + function Nuevo : IBizPedidoProveedor; + procedure Anadir(APedido : IBizPedidoProveedor); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoProveedor): 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); + procedure Print(APedido : IBizPedidoProveedor); + + 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); + + end; + + TPedidosProveedorController = class(TObservador, 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 métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(APedido: IBizPedidoProveedor); virtual; + procedure AsignarEditor(out AEditor: IEditorDBItem); virtual; + + procedure AsignarID(APedido: IBizPedidoProveedor; const IDNuevo : Integer); + + 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoProveedor): 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; + function BuscarPendientesRecepcion: IBizPedidoProveedor; + function Nuevo : IBizPedidoProveedor; + procedure Ver(APedido : IBizPedidoProveedor); + procedure VerTodos(APedidos: IBizPedidoProveedor); + procedure VerDireccionEntrega(APedido : IBizPedidoProveedor); + function Duplicar(APedido: IBizPedidoProveedor): IBizPedidoProveedor; + procedure Preview(APedido : IBizPedidoProveedor); + procedure Print(APedido : IBizPedidoProveedor); + + 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; + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorPedidosProveedor, uDataModulePedidosProveedor, + uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios, + schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController, + uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor, + Dialogs, uIEditorDireccionEntregaPedidoProveedor, + uIEditorSituacionPedidoProveedor, Variants; + +{ TPedidosProveedorController } + +procedure TPedidosProveedorController.Anadir(APedido: IBizPedidoProveedor); +begin + APedido.Insert; +end; + +procedure TPedidosProveedorController.AsignarDataModule; +begin + FDataModule := TDataModulePedidosProveedor.Create(Nil); +end; + +procedure TPedidosProveedorController.AsignarEditor(out AEditor: IEditorDBItem); +begin + CreateEditor('EditorPedidoProveedor', IEditorPedidoProveedor, AEditor); +end; + +procedure TPedidosProveedorController.AsignarID(APedido: IBizPedidoProveedor; const IDNuevo : Integer); +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignada'); + + if not Assigned(APedido.Detalles) then + raise Exception.Create ('Detalles de pedido no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(APedido.Detalles, IDNuevo, APedido.EsNuevo); + + if APedido.EsNuevo then + begin + APedido.Edit; + APedido.ID := IDNuevo; + APedido.Post; + end; +end; + +function TPedidosProveedorController.Buscar(const ID: Integer): IBizPedidoProveedor; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TPedidosProveedorController.BuscarPendientesRecepcion: IBizPedidoProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_PedidosProveedorSITUACION + ' <> ''' + SITUACION_PEDIDO_RECIBIDO + ''''); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.BuscarTodos: IBizPedidoProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TPedidosProveedorController.Create; +begin + AsignarDataModule; + + FProveedorController := TProveedoresController.Create; + FDetallesController := TDetallesPedidoProveedorController.Create; + FDetallesController.addObservador(Self); +end; + +function TPedidosProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +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 situación 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; + ShowHourglassCursor; + try + RecuperarProveedor(APedido); + CreateEditor('EditorSituacionPedidoProveedor', IEditorSituacionPedidoProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + PedidoProveedor := APedido; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + Result := True; + finally + 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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + 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; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.ValidarPedido( + APedido: IBizPedidoProveedor): Boolean; +begin + Result := False; + + 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 + (not Assigned(APedido.Proveedor)) or + (APedido.Proveedor.IsEmpty) then + raise Exception.Create('Debe indicar el proveedor de esta 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) then + raise Exception.Create('Debe indicar una dirección de entrega o almacén 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 "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + APedido.Edit; + try + APedido.USUARIO := dmUsuarios.LoginInfo.Usuario; + + if Assigned(APedido.Proveedor) + and (APedido.ID_PROVEEDOR <> APedido.Proveedor.ID) then + APedido.ID_PROVEEDOR := APedido.Proveedor.ID; + + Result := True; + finally + APedido.Post; + end; +end; + +function TPedidosProveedorController.ValidarSituacion(ASituacion: String; + AFechaPedido: TDateTime; var AFechaRecepcion: TDateTime): Boolean; +begin + Result := False; + 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 recepción') + else if (AFechaRecepcion < AFechaPedido) then + raise Exception.Create('La fecha de recepción debe ser posterior a la fecha del pedido'); + end; + Result := True; +end; +procedure TPedidosProveedorController.Ver(APedido: IBizPedidoProveedor); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(APedido); + AsignarEditor(AEditor); + + with (AEditor as IEditorPedidoProveedor) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Pedido := APedido; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TPedidosProveedorController.VerTodos(APedidos: IBizPedidoProveedor); +var + AEditor : IEditorPedidosProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorPedidosProveedor', IEditorPedidosProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Pedidos := APedidos; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +procedure TPedidosProveedorController.VerDireccionEntrega( + APedido: IBizPedidoProveedor); +var + AEditor : IEditorDireccionEntregaPedidoProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + //RecuperarObjetos(APedido); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaPedidoProveedor', IEditorDireccionEntregaPedidoProveedor, AEditor); + + with (AEditor as IEditorDireccionEntregaPedidoProveedor) do + begin + Pedido := APedido; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + 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); + try + with AEditor do + begin + Controller := Self; + Pedidos := APedido; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := PedidosProveedorSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TPedidosProveedorController.Eliminar(APedido: IBizPedidoProveedor): Boolean; +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignada'); + + ShowHourglassCursor; + try + if (APedido.State in dsEditModes) then + APedido.Cancel; + + APedido.Delete; + APedido.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + 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 + if not APedido.DataTable.Editing then + APedido.Edit; + + APedido.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + 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); + CopyDataTable(APedido.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TPedidosProveedorController.FiltrarEmpresa( + APedido: IBizPedidoProveedor); +begin + if APedido.DataTable.Active then + APedido.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with APedido.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_PedidosProveedorID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + 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; +var + IDNuevo : Integer; +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; + try + if (APedido.EsNuevo) then + IDNuevo := FDataModule.GetNextID(APedido.DataTable.LogicalName) + else + IDNuevo := APedido.ID; + + AsignarID(APedido, IDNuevo); + 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); +var + AReportController : IPedidosProveedorReportController; +begin + AReportController := TPedidosProveedorReportController.Create; + try + AReportController.Preview(APedido.ID); + finally + AReportController := NIL; + end; +end; + +procedure TPedidosProveedorController.Print(APedido: IBizPedidoProveedor); +var + AReportController : IPedidosProveedorReportController; +begin + AReportController := TPedidosProveedorReportController.Create; + try + AReportController.Print(APedido.ID); + finally + AReportController := NIL; + end; +end; + +function TPedidosProveedorController.GetProveedorController: IProveedoresController; +begin + Result := FProveedorController; +end; + +function TPedidosProveedorController.GetDetallesController: IDetallesPedidoProveedorController; +begin + Result := FDetallesController; +end; + +end. 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 00000000..36181ad4 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.pas @@ -0,0 +1,104 @@ +unit uPedidosProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePedidosProveedorReport, + uClientesController, uPedidosProveedorController, uDetallesPedidoProveedorController, + uBizPedidosProveedor; + +type + IPedidosProveedorReportController = interface + ['{D0686358-251C-43C4-9927-6112F2F4D3B8}'] + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + TPedidosProveedorReportController = class(TInterfacedObject, IPedidosProveedorReportController) + private + FDataModule : IDataModulePedidosProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorPedidosProveedorPreview, + uEditorPreview, uDataModulePedidosProveedor, uEditorBase, cxControls; + +{ TPedidosProveedorReportController } + +constructor TPedidosProveedorReportController.Create; +begin + 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; + +procedure TPedidosProveedorReportController.Preview(const AID : integer); +var + AStream: Binary; + AEditor : IEditorPedidosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TPedidosProveedorReportController.Print(const AID : integer); +var + AStream: Binary; + AEditor : IEditorPedidosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..4c610fd0 --- /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.dpk b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk new file mode 100644 index 00000000..95970fd3 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk @@ -0,0 +1,33 @@ +package PedidosProveedor_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 + PedidosProveedor_model; + +contains + uDataModulePedidosProveedor in 'uDataModulePedidosProveedor.pas' {DataModulePedidosProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm new file mode 100644 index 00000000..dea511f3 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm @@ -0,0 +1,1083 @@ +object DataModulePedidosProveedor: TDataModulePedidosProveedor + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 373 + Width = 518 + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 40 + Top = 8 + end + object ROMessage: TROBinMessage + Left = 40 + Top = 60 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvPedidosProveedor' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 112 + end + object DABinAdapter: TDABINAdapter + Left = 40 + Top = 168 + end + object tbl_PedidosProveedor: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PedidosProveedor_ID_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Enviado?' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha pedido' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Confirmado?' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_CONFIRMACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Entrega prevista' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_ENTREGA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PedidosProveedor_ID_ALMACEN' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PedidosProveedor_REF_PED_CLIENTE' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosProveedor' + IndexDefs = <> + Left = 224 + Top = 96 + end + object ds_PedidosProveedor: TDADataSource + DataTable = tbl_PedidosProveedor + Left = 224 + Top = 40 + end + object tbl_PedidosProveedor_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = 23 + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_PEDIDO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 = 376 + Top = 96 + end + object ds_PedidosProveedor_Detalles: TDADataSource + DataTable = tbl_PedidosProveedor_Detalles + Left = 376 + Top = 40 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 40 + Top = 240 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 296 + end + object tbl_PedidosProveedor_Articulos_Pendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Articulos_Pendientes' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Articulos_Pendientes' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidosProveedor_Articulos_Pendientes' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosProveedor_Articulos_Pendientes' + IndexDefs = <> + Left = 312 + Top = 256 + end + object ds_PedidosProveedor_Articulos_Pendientes: TDADataSource + DataTable = tbl_PedidosProveedor_Articulos_Pendientes + Left = 312 + Top = 200 + 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 00000000..bff1b778 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas @@ -0,0 +1,181 @@ +unit uDataModulePedidosProveedor; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + + uDAClientDataModule, uROTypes, + uIDataModulePedidosProveedor, uIDataModulePedidosProveedorReport, + uBizPedidosProveedor, uBizDetallesPedidoProveedor; + +type + TDataModulePedidosProveedor = class(TDAClientDataModule, IDataModulePedidosProveedor, + IDataModulePedidosProveedorReport) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + tbl_PedidosProveedor: TDACDSDataTable; + ds_PedidosProveedor: TDADataSource; + tbl_PedidosProveedor_Detalles: TDACDSDataTable; + ds_PedidosProveedor_Detalles: TDADataSource; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + tbl_PedidosProveedor_Articulos_Pendientes: TDACDSDataTable; + ds_PedidosProveedor_Articulos_Pendientes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesPedidoProveedor; + + protected + procedure AsignarClaseNegocio(var APedido: TDACDSDataTable); virtual; + + public + function GetItems : IBizPedidoProveedor; virtual; + function GetItem(const ID : Integer) : IBizPedidoProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizPedidoProveedor; + + function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; + + // Report + function GetReport(const AID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDAInterfaces, uDataModuleConexion, + uDataTableUtils, schPedidosProveedorClient_Intf, uBizContactos; + +{ TdmPedidosProveedor } + +procedure TDataModulePedidosProveedor.AsignarClaseNegocio(var APedido: TDACDSDataTable); +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.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_PedidosProveedor then + aGeneratorName := 'GEN_PEDIDOS_PROV_ID'; + + if DataSetName = nme_PedidosProveedor_Detalles then + aGeneratorName := 'GEN_PEDIDOS_PROV_DETALLES_ID'; + + Result := (RORemoteService as IsrvPedidosProveedor).GetNextAutoInc(aGeneratorName) +end; + +function TDataModulePedidosProveedor.GetReport(const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvPedidosProveedor).GenerateReport(AID) +end; + +function TDataModulePedidosProveedor.NewItem: IBizPedidoProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModulePedidosProveedor._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModulePedidosProveedor._GetDetalles: IBizDetallesPedidoProveedor; +var + ADetalles : TDACDSDataTable; +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.GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; +var + AArticulos : TDACDSDataTable; +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; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_PedidosProveedorID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosProveedor.GetItems: IBizPedidoProveedor; +var + APedido : TDACDSDataTable; +begin + ShowHourglassCursor; + try + APedido := _CloneDataTable(tbl_PedidosProveedor); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + APedido.FieldByName(fld_PedidosProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + AsignarClaseNegocio(APedido); + + with TBizPedidoProveedor(APedido.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (APedido as IBizPedidoProveedor); + finally + HideHourglassCursor; + end; +end; + +end. 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 00000000..fbf28b0c --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.pas @@ -0,0 +1,20 @@ +unit uIDataModulePedidosProveedor; + +interface + +uses + uBizPedidosProveedor, uBizDetallesPedidoProveedor; + +type + IDataModulePedidosProveedor = interface + ['{280AA760-26CC-4962-AB08-6C473199DF86}'] + function GetItems: IBizPedidoProveedor; + function GetItem(const ID : Integer) : IBizPedidoProveedor; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizPedidoProveedor; + function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; + end; + +implementation + +end. 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 00000000..793be656 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.pas @@ -0,0 +1,16 @@ +unit uIDataModulePedidosProveedorReport; + +interface + +uses + uROTypes; + +type + IDataModulePedidosProveedorReport = interface + ['{3B7564E3-8DFD-4976-BBE8-6EF13185B209}'] + function GetReport(const AID: Integer): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/PedidosProveedor_model.prjconfig b/Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/PedidosProveedor_model.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/PedidosProveedor_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/default.txaPackage b/Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/default.txaPackage new file mode 100644 index 00000000..e69de29b 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 00000000..9029ec0d --- /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.dpk b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk new file mode 100644 index 00000000..6b0510b1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk @@ -0,0 +1,44 @@ +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} +{%TogetherDiagram 'ModelSupport_PedidosProveedor_model\default.txaPackage'} + +requires + DataAbstract_D10, + Base, + Usuarios, + Empresas_controller, + Contactos_model, + GUIBase; + +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.drc b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas new file mode 100644 index 00000000..dcdb3799 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas @@ -0,0 +1,2168 @@ +unit schPedidosProveedorClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_DarReferencia = '{9D9C3B70-4476-4732-B123-47F58F4C108E}'; + RID_PedidosProveedor = '{416EEEE9-486B-48BB-A166-C897B8AD547B}'; + RID_PedidosProveedor_Detalles = '{78C3C840-8365-4799-AE68-CF6A6C91A435}'; + RID_PedidosProveedor_Detalles_Refresh = '{B4C479AA-6A22-4709-98F6-411D9E0D1EA6}'; + RID_PedidosProveedor_Refresh = '{50C3DBAC-DFDA-4139-BB81-C61BEE0C0169}'; + RID_PedidosProveedor_Articulos_Pendientes = '{1CBEF2D9-1134-4F0C-8EAB-BBF5A7B1EFFD}'; + + { Data table names } + nme_DarReferencia = 'DarReferencia'; + nme_PedidosProveedor = 'PedidosProveedor'; + nme_PedidosProveedor_Detalles = 'PedidosProveedor_Detalles'; + nme_PedidosProveedor_Detalles_Refresh = 'PedidosProveedor_Detalles_Refresh'; + nme_PedidosProveedor_Refresh = 'PedidosProveedor_Refresh'; + nme_PedidosProveedor_Articulos_Pendientes = 'PedidosProveedor_Articulos_Pendientes'; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { PedidosProveedor fields } + fld_PedidosProveedorID = 'ID'; + fld_PedidosProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_PedidosProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_PedidosProveedorNOMBRE = 'NOMBRE'; + 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_PedidosProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + 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'; + + { PedidosProveedor field indexes } + idx_PedidosProveedorID = 0; + idx_PedidosProveedorID_EMPRESA = 1; + idx_PedidosProveedorID_PROVEEDOR = 2; + idx_PedidosProveedorNOMBRE = 3; + idx_PedidosProveedorREFERENCIA = 4; + idx_PedidosProveedorSITUACION = 5; + idx_PedidosProveedorFECHA_ENVIO = 6; + idx_PedidosProveedorFECHA_PEDIDO = 7; + idx_PedidosProveedorFECHA_CONFIRMACION = 8; + idx_PedidosProveedorFECHA_ENTREGA = 9; + idx_PedidosProveedorID_ALMACEN = 10; + idx_PedidosProveedorNOMBRE_ALMACEN = 11; + idx_PedidosProveedorOBSERVACIONES = 12; + idx_PedidosProveedorIMPORTE_TOTAL = 13; + idx_PedidosProveedorINCIDENCIAS = 14; + idx_PedidosProveedorINCIDENCIAS_ACTIVAS = 15; + idx_PedidosProveedorCALLE = 16; + idx_PedidosProveedorPOBLACION = 17; + idx_PedidosProveedorPROVINCIA = 18; + idx_PedidosProveedorCODIGO_POSTAL = 19; + idx_PedidosProveedorPERSONA_CONTACTO = 20; + idx_PedidosProveedorTELEFONO = 21; + idx_PedidosProveedorFECHA_ALTA = 22; + idx_PedidosProveedorFECHA_MODIFICACION = 23; + idx_PedidosProveedorUSUARIO = 24; + idx_PedidosProveedorID_PEDIDO_CLIENTE = 25; + idx_PedidosProveedorREF_PED_CLIENTE = 26; + idx_PedidosProveedorIMPORTE_NETO = 27; + idx_PedidosProveedorIMPORTE_PORTE = 28; + idx_PedidosProveedorDESCUENTO = 29; + idx_PedidosProveedorIMPORTE_DESCUENTO = 30; + idx_PedidosProveedorBASE_IMPONIBLE = 31; + idx_PedidosProveedorIVA = 32; + idx_PedidosProveedorIMPORTE_IVA = 33; + idx_PedidosProveedorID_FORMA_PAGO = 34; + + { 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_DetallesREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_PedidosProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_PedidosProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PedidosProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_PedidosProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PedidosProveedor_Detalles field indexes } + idx_PedidosProveedor_DetallesID = 0; + idx_PedidosProveedor_DetallesID_PEDIDO = 1; + idx_PedidosProveedor_DetallesPOSICION = 2; + idx_PedidosProveedor_DetallesTIPO_DETALLE = 3; + idx_PedidosProveedor_DetallesREFERENCIA = 4; + idx_PedidosProveedor_DetallesID_ARTICULO = 5; + idx_PedidosProveedor_DetallesCONCEPTO = 6; + idx_PedidosProveedor_DetallesCANTIDAD = 7; + idx_PedidosProveedor_DetallesIMPORTE_UNIDAD = 8; + idx_PedidosProveedor_DetallesIMPORTE_TOTAL = 9; + idx_PedidosProveedor_DetallesDESCUENTO = 10; + idx_PedidosProveedor_DetallesIMPORTE_PORTE = 11; + idx_PedidosProveedor_DetallesVISIBLE = 12; + idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR = 13; + + { PedidosProveedor_Detalles_Refresh fields } + fld_PedidosProveedor_Detalles_RefreshID = 'ID'; + fld_PedidosProveedor_Detalles_RefreshID_PEDIDO = 'ID_PEDIDO'; + fld_PedidosProveedor_Detalles_RefreshPOSICION = 'POSICION'; + fld_PedidosProveedor_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_PedidosProveedor_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedor_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosProveedor_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_PedidosProveedor_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosProveedor_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosProveedor_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PedidosProveedor_Detalles_Refresh field indexes } + idx_PedidosProveedor_Detalles_RefreshID = 0; + idx_PedidosProveedor_Detalles_RefreshID_PEDIDO = 1; + idx_PedidosProveedor_Detalles_RefreshPOSICION = 2; + idx_PedidosProveedor_Detalles_RefreshTIPO_DETALLE = 3; + idx_PedidosProveedor_Detalles_RefreshREFERENCIA = 4; + idx_PedidosProveedor_Detalles_RefreshID_ARTICULO = 5; + idx_PedidosProveedor_Detalles_RefreshCONCEPTO = 6; + idx_PedidosProveedor_Detalles_RefreshCANTIDAD = 7; + idx_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD = 8; + idx_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL = 9; + idx_PedidosProveedor_Detalles_RefreshDESCUENTO = 10; + idx_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE = 11; + idx_PedidosProveedor_Detalles_RefreshVISIBLE = 12; + idx_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { PedidosProveedor_Refresh fields } + fld_PedidosProveedor_RefreshID = 'ID'; + fld_PedidosProveedor_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_PedidosProveedor_RefreshID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_PedidosProveedor_RefreshNOMBRE = 'NOMBRE'; + fld_PedidosProveedor_RefreshREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedor_RefreshSITUACION = 'SITUACION'; + fld_PedidosProveedor_RefreshFECHA_ENVIO = 'FECHA_ENVIO'; + fld_PedidosProveedor_RefreshFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_PedidosProveedor_RefreshFECHA_CONFIRMACION = 'FECHA_CONFIRMACION'; + fld_PedidosProveedor_RefreshFECHA_ENTREGA = 'FECHA_ENTREGA'; + fld_PedidosProveedor_RefreshID_ALMACEN = 'ID_ALMACEN'; + fld_PedidosProveedor_RefreshNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_PedidosProveedor_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_PedidosProveedor_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosProveedor_RefreshINCIDENCIAS = 'INCIDENCIAS'; + fld_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_PedidosProveedor_RefreshCALLE = 'CALLE'; + fld_PedidosProveedor_RefreshPOBLACION = 'POBLACION'; + fld_PedidosProveedor_RefreshPROVINCIA = 'PROVINCIA'; + fld_PedidosProveedor_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_PedidosProveedor_RefreshPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_PedidosProveedor_RefreshTELEFONO = 'TELEFONO'; + fld_PedidosProveedor_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_PedidosProveedor_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PedidosProveedor_RefreshUSUARIO = 'USUARIO'; + fld_PedidosProveedor_RefreshID_PEDIDO_CLIENTE = 'ID_PEDIDO_CLIENTE'; + fld_PedidosProveedor_RefreshREF_PED_CLIENTE = 'REF_PED_CLIENTE'; + fld_PedidosProveedor_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_PedidosProveedor_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosProveedor_RefreshDESCUENTO = 'DESCUENTO'; + fld_PedidosProveedor_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_PedidosProveedor_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_PedidosProveedor_RefreshIVA = 'IVA'; + fld_PedidosProveedor_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_PedidosProveedor_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + + { PedidosProveedor_Refresh field indexes } + idx_PedidosProveedor_RefreshID = 0; + idx_PedidosProveedor_RefreshID_EMPRESA = 1; + idx_PedidosProveedor_RefreshID_PROVEEDOR = 2; + idx_PedidosProveedor_RefreshNOMBRE = 3; + idx_PedidosProveedor_RefreshREFERENCIA = 4; + idx_PedidosProveedor_RefreshSITUACION = 5; + idx_PedidosProveedor_RefreshFECHA_ENVIO = 6; + idx_PedidosProveedor_RefreshFECHA_PEDIDO = 7; + idx_PedidosProveedor_RefreshFECHA_CONFIRMACION = 8; + idx_PedidosProveedor_RefreshFECHA_ENTREGA = 9; + idx_PedidosProveedor_RefreshID_ALMACEN = 10; + idx_PedidosProveedor_RefreshNOMBRE_ALMACEN = 11; + idx_PedidosProveedor_RefreshOBSERVACIONES = 12; + idx_PedidosProveedor_RefreshIMPORTE_TOTAL = 13; + idx_PedidosProveedor_RefreshINCIDENCIAS = 14; + idx_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS = 15; + idx_PedidosProveedor_RefreshCALLE = 16; + idx_PedidosProveedor_RefreshPOBLACION = 17; + idx_PedidosProveedor_RefreshPROVINCIA = 18; + idx_PedidosProveedor_RefreshCODIGO_POSTAL = 19; + idx_PedidosProveedor_RefreshPERSONA_CONTACTO = 20; + idx_PedidosProveedor_RefreshTELEFONO = 21; + idx_PedidosProveedor_RefreshFECHA_ALTA = 22; + idx_PedidosProveedor_RefreshFECHA_MODIFICACION = 23; + idx_PedidosProveedor_RefreshUSUARIO = 24; + idx_PedidosProveedor_RefreshID_PEDIDO_CLIENTE = 25; + idx_PedidosProveedor_RefreshREF_PED_CLIENTE = 26; + idx_PedidosProveedor_RefreshIMPORTE_NETO = 27; + idx_PedidosProveedor_RefreshIMPORTE_PORTE = 28; + idx_PedidosProveedor_RefreshDESCUENTO = 29; + idx_PedidosProveedor_RefreshIMPORTE_DESCUENTO = 30; + idx_PedidosProveedor_RefreshBASE_IMPONIBLE = 31; + idx_PedidosProveedor_RefreshIVA = 32; + idx_PedidosProveedor_RefreshIMPORTE_IVA = 33; + idx_PedidosProveedor_RefreshID_FORMA_PAGO = 34; + + { 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 + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{9854A0CD-0C0C-4D9A-958B-81ED1FC86AC3}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor } + IPedidosProveedor = interface(IDAStronglyTypedDataTable) + ['{AFABA977-8E05-489D-A958-87E26AF68CB3}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetFECHA_CONFIRMACIONValue: DateTime; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); + function GetFECHA_ENTREGAValue: DateTime; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_PEDIDO_CLIENTEValue: Integer; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); + function GetREF_PED_CLIENTEValue: String; + procedure SetREF_PED_CLIENTEValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + end; + + { TPedidosProveedorDataTableRules } + TPedidosProveedorDataTableRules = class(TDADataTableRules, IPedidosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Detalles } + IPedidosProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{DF7DB57B-BCA8-42B8-91A3-8850DE614323}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Float; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Float; + procedure SetIMPORTE_TOTALValue(const aValue: Float); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_DetallesDataTableRules } + TPedidosProveedor_DetallesDataTableRules = class(TDADataTableRules, IPedidosProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Float; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Detalles_Refresh } + IPedidosProveedor_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{7E802AB3-A1DE-4C21-94ED-AE02E2AF26E2}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Float; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); + function GetIMPORTE_TOTALValue: Float; + procedure SetIMPORTE_TOTALValue(const aValue: Float); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Float; + procedure SetIMPORTE_PORTEValue(const aValue: Float); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_Detalles_RefreshDataTableRules } + TPedidosProveedor_Detalles_RefreshDataTableRules = class(TDADataTableRules, IPedidosProveedor_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Float; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Refresh } + IPedidosProveedor_Refresh = interface(IDAStronglyTypedDataTable) + ['{76FCFAB7-76E6-4AF5-900F-CA7FA8CBFCB8}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetFECHA_CONFIRMACIONValue: DateTime; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); + function GetFECHA_ENTREGAValue: DateTime; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_PEDIDO_CLIENTEValue: Integer; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); + function GetREF_PED_CLIENTEValue: String; + procedure SetREF_PED_CLIENTEValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + end; + + { TPedidosProveedor_RefreshDataTableRules } + TPedidosProveedor_RefreshDataTableRules = class(TDADataTableRules, IPedidosProveedor_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Articulos_Pendientes } + IPedidosProveedor_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) + ['{E563C62D-7EFC-4215-AB53-8BAECD65B2A1}'] + { Property getters and setters } + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_Articulos_PendientesDataTableRules } + TPedidosProveedor_Articulos_PendientesDataTableRules = class(TDADataTableRules, IPedidosProveedor_Articulos_Pendientes) + private + protected + { Property getters and setters } + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TPedidosProveedorDataTableRules } +constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosProveedorDataTableRules.Destroy; +begin + inherited; +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.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_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.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.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.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.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_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_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_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.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.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.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsString := aValue.Text; +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.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsString := aValue.Text; +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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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.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.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.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.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; + + +{ 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.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.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.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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].AsFloat; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].AsFloat := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_TOTALValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].AsFloat; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].AsFloat := aValue; +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.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].AsFloat; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].AsFloat := aValue; +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.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; + + +{ TPedidosProveedor_Detalles_RefreshDataTableRules } +constructor TPedidosProveedor_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosProveedor_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID_PEDIDO].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID_PEDIDO].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsFloat; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD].AsFloat := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL].AsFloat; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL].AsFloat := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE].AsFloat := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPedidosProveedor_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TPedidosProveedor_RefreshDataTableRules } +constructor TPedidosProveedor_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosProveedor_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID_EMPRESA].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID_PROVEEDOR].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID_PROVEEDOR].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshNOMBRE].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshNOMBRE].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshREFERENCIA].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshREFERENCIA].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshSITUACION].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshSITUACION].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ENVIO].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ENVIO].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_PEDIDO].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_CONFIRMACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_CONFIRMACION].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_CONFIRMACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_CONFIRMACION].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ENTREGA].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ENTREGA].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID_ALMACEN].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID_ALMACEN].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshNOMBRE_ALMACEN].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshNOMBRE_ALMACEN].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosProveedor_RefreshOBSERVACIONES].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosProveedor_RefreshINCIDENCIAS].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshINCIDENCIAS].AsString := aValue.Text; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshCALLE].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshCALLE].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshPOBLACION].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshPOBLACION].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshPROVINCIA].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshPROVINCIA].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshPERSONA_CONTACTO].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshPERSONA_CONTACTO].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshTELEFONO].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshTELEFONO].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshUSUARIO].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshUSUARIO].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetID_PEDIDO_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID_PEDIDO_CLIENTE].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetID_PEDIDO_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID_PEDIDO_CLIENTE].AsInteger := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetREF_PED_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshREF_PED_CLIENTE].AsString; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetREF_PED_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshREF_PED_CLIENTE].AsString := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshDESCUENTO].AsFloat; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIVA].AsFloat; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIVA].AsFloat := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TPedidosProveedor_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TPedidosProveedor_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_RefreshID_FORMA_PAGO].AsInteger := aValue; +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.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.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.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.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].AsInteger; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].AsInteger := aValue; +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; + + +initialization + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Detalles, TPedidosProveedor_DetallesDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Detalles_Refresh, TPedidosProveedor_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Refresh, TPedidosProveedor_RefreshDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Articulos_Pendientes, TPedidosProveedor_Articulos_PendientesDataTableRules); + +end. 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 00000000..dae14a82 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas @@ -0,0 +1,2555 @@ +unit schPedidosProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_DarReferenciaDelta = '{1076075E-7674-4459-B181-08AB1CF2BC9A}'; + RID_PedidosProveedorDelta = '{88605485-11EC-471D-ACCA-7949918142A2}'; + RID_PedidosProveedor_DetallesDelta = '{FF1E4E43-4750-4E28-9D45-AD0908AC0D8D}'; + RID_PedidosProveedor_Detalles_RefreshDelta = '{FF54D9C9-FAFE-4ADE-BD9D-7A380E8CA8B0}'; + RID_PedidosProveedor_RefreshDelta = '{8B4575ED-6808-4DCA-9DE5-4C9EB469284F}'; + RID_PedidosProveedor_Articulos_PendientesDelta = '{A88E8B3E-1623-4650-BE75-89AA21D80839}'; + +type + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{1076075E-7674-4459-B181-08AB1CF2BC9A}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedorDelta } + IPedidosProveedorDelta = interface(IPedidosProveedor) + ['{88605485-11EC-471D-ACCA-7949918142A2}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : 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 GetOldNOMBRE_ALMACENValue : 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; + + { 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 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 OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + 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; + end; + + { TPedidosProveedorBusinessProcessorRules } + TPedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor, IPedidosProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + function GetOldFECHA_CONFIRMACIONValue: DateTime; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + function GetOldFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + function GetOldID_PEDIDO_CLIENTEValue: Integer; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + function GetOldREF_PED_CLIENTEValue: String; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property FECHA_CONFIRMACION : DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property OldFECHA_CONFIRMACION : DateTime read GetOldFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA : DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_PEDIDO_CLIENTE : Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property OldID_PEDIDO_CLIENTE : Integer read GetOldID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE : String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_DetallesDelta } + IPedidosProveedor_DetallesDelta = interface(IPedidosProveedor_Detalles) + ['{FF1E4E43-4750-4E28-9D45-AD0908AC0D8D}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Float; + function GetOldIMPORTE_TOTALValue : Float; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Float; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Float read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_DetallesBusinessProcessorRules } + TPedidosProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor_Detalles, IPedidosProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Float; virtual; + function GetOldIMPORTE_UNIDADValue: Float; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + function GetOldIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Float read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Detalles_RefreshDelta } + IPedidosProveedor_Detalles_RefreshDelta = interface(IPedidosProveedor_Detalles_Refresh) + ['{FF54D9C9-FAFE-4ADE-BD9D-7A380E8CA8B0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Float; + function GetOldIMPORTE_TOTALValue : Float; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Float; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Float read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_Detalles_RefreshBusinessProcessorRules } + TPedidosProveedor_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor_Detalles_Refresh, IPedidosProveedor_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Float; virtual; + function GetOldIMPORTE_UNIDADValue: Float; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Float); virtual; + function GetIMPORTE_TOTALValue: Float; virtual; + function GetOldIMPORTE_TOTALValue: Float; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Float; virtual; + function GetOldIMPORTE_PORTEValue: Float; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Float); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Float read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Float read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Float read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Float read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Float read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_RefreshDelta } + IPedidosProveedor_RefreshDelta = interface(IPedidosProveedor_Refresh) + ['{8B4575ED-6808-4DCA-9DE5-4C9EB469284F}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : 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 GetOldNOMBRE_ALMACENValue : 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; + + { 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 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 OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + 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; + end; + + { TPedidosProveedor_RefreshBusinessProcessorRules } + TPedidosProveedor_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor_Refresh, IPedidosProveedor_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + function GetOldFECHA_CONFIRMACIONValue: DateTime; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + function GetOldFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + function GetOldID_PEDIDO_CLIENTEValue: Integer; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + function GetOldREF_PED_CLIENTEValue: String; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property FECHA_CONFIRMACION : DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property OldFECHA_CONFIRMACION : DateTime read GetOldFECHA_CONFIRMACIONValue; + property FECHA_ENTREGA : DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_PEDIDO_CLIENTE : Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property OldID_PEDIDO_CLIENTE : Integer read GetOldID_PEDIDO_CLIENTEValue; + property REF_PED_CLIENTE : String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Articulos_PendientesDelta } + IPedidosProveedor_Articulos_PendientesDelta = interface(IPedidosProveedor_Articulos_Pendientes) + ['{A88E8B3E-1623-4650-BE75-89AA21D80839}'] + { Property getters and setters } + function GetOldID_PEDIDOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + 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 : Integer 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 GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TPedidosProveedorBusinessProcessorRules } +constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_EMPRESA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_PROVEEDOR]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorSITUACION]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENVIO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_PEDIDO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_CONFIRMACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENTREGA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_ALMACEN]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorOBSERVACIONES]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES] := aValue.Text; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_TOTAL]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS] := aValue.Text; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCALLE]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPOBLACION]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPROVINCIA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGO_POSTAL]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPERSONA_CONTACTO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorTELEFONO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ALTA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_MODIFICACION]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorUSUARIO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PEDIDO_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PEDIDO_CLIENTEValue: Integer; +begin + result := 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; + +function TPedidosProveedorBusinessProcessorRules.GetREF_PED_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREF_PED_CLIENTEValue: String; +begin + result := 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; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_NETO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_PORTE]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorDESCUENTO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorBASE_IMPONIBLE]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIVA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_IVA]; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA] := aValue; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FORMA_PAGO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := 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; + + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_PEDIDO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := 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; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesPOSICION]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := 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; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_ARTICULO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := 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; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCONCEPTO]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCANTIDAD]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesDESCUENTO]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesVISIBLE]; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE] := aValue; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + + +{ TPedidosProveedor_Detalles_RefreshBusinessProcessorRules } +constructor TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshID]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID_PEDIDO]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshID_PEDIDO]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID_PEDIDO] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshPOSICION]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshPOSICION]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshPOSICION] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID_ARTICULO]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshID_ARTICULO]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshCONCEPTO]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshCONCEPTO]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshCANTIDAD]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshCANTIDAD]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshDESCUENTO]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshDESCUENTO]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshVISIBLE]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshVISIBLE]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshVISIBLE] := aValue; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TPedidosProveedor_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TPedidosProveedor_RefreshBusinessProcessorRules } +constructor TPedidosProveedor_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosProveedor_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_EMPRESA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID_EMPRESA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_EMPRESA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_PROVEEDOR]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID_PROVEEDOR]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_PROVEEDOR] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshNOMBRE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshNOMBRE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshNOMBRE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshREFERENCIA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshREFERENCIA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshREFERENCIA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshSITUACION]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshSITUACION]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshSITUACION] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ENVIO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_ENVIO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ENVIO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_PEDIDO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_PEDIDO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_PEDIDO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_CONFIRMACION]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_CONFIRMACION]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_CONFIRMACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_CONFIRMACION] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ENTREGA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_ENTREGA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ENTREGA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_ALMACEN]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID_ALMACEN]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_ALMACEN] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshNOMBRE_ALMACEN]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshNOMBRE_ALMACEN]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshNOMBRE_ALMACEN] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshOBSERVACIONES]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshOBSERVACIONES]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_TOTAL]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIMPORTE_TOTAL]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS] := aValue.Text; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshCALLE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshCALLE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshCALLE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPOBLACION]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshPOBLACION]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPOBLACION] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPROVINCIA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshPROVINCIA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPROVINCIA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshCODIGO_POSTAL]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshCODIGO_POSTAL]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshCODIGO_POSTAL] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPERSONA_CONTACTO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshPERSONA_CONTACTO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshPERSONA_CONTACTO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshTELEFONO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshTELEFONO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshTELEFONO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ALTA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_ALTA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_ALTA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_MODIFICACION]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshFECHA_MODIFICACION]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshUSUARIO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshUSUARIO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshUSUARIO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetID_PEDIDO_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_PEDIDO_CLIENTE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldID_PEDIDO_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID_PEDIDO_CLIENTE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetID_PEDIDO_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_PEDIDO_CLIENTE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetREF_PED_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshREF_PED_CLIENTE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldREF_PED_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshREF_PED_CLIENTE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetREF_PED_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshREF_PED_CLIENTE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_NETO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIMPORTE_NETO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_NETO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_PORTE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIMPORTE_PORTE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_PORTE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshDESCUENTO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshDESCUENTO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshDESCUENTO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshBASE_IMPONIBLE]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshBASE_IMPONIBLE]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIVA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIVA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIVA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_IVA]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshIMPORTE_IVA]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshIMPORTE_IVA] := aValue; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_FORMA_PAGO]; +end; + +function TPedidosProveedor_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_RefreshID_FORMA_PAGO]; +end; + +procedure TPedidosProveedor_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_RefreshID_FORMA_PAGO] := aValue; +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.GetOldID_PEDIDOValue: Integer; +begin + result := 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; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := 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; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := 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; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO] := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := 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; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD] := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := 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; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_DetallesDelta, TPedidosProveedor_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_Detalles_RefreshDelta, TPedidosProveedor_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_RefreshDelta, TPedidosProveedor_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_Articulos_PendientesDelta, TPedidosProveedor_Articulos_PendientesBusinessProcessorRules); + +end. 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 00000000..9d5548a0 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.pas @@ -0,0 +1,57 @@ +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) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + + TBizDetallesPedidoProveedorPend = class(TPedidosProveedor_Articulos_PendientesDataTableRules, IBizDetallesPedidoProveedorPend) + end; + +implementation + +{ TBizDetallesPedidoProveedor } + +uses + uDataTableUtils; + + +constructor TBizDetallesPedidoProveedor.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesPedidoProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +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.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas new file mode 100644 index 00000000..b85575f1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas @@ -0,0 +1,321 @@ +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 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; + +{ 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; +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 := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_PEDIDO := DateOf(Date); + SITUACION := SITUACION_PEDIDO_PENDIENTE; + INCIDENCIAS_ACTIVAS := 0; +// ID_PEDIDO_CLIENTE := 0; + REF_PED_CLIENTE := ''; + + // ALMACÉN PUESTO A CAPÓN Y PROVISIONAL + ID_ALMACEN := 2; +end; + +procedure TBizPedidoProveedor.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizPedidoProveedor.GetDetalles: IBizDetallesPedidoProveedor; +begin + Result := FDetalles; +end; + +procedure TBizPedidoProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresPedidoNuevo; +end; + +procedure TBizPedidoProveedor.SetProveedor(AValue: IBizProveedor); +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 + DataTable.Edit; + ID_PROVEEDOR := FProveedor.ID; + 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_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.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas new file mode 100644 index 00000000..4c39eb7a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas @@ -0,0 +1,78 @@ +unit uBizPedidosProveedorServer; + +interface + +uses + uDAInterfaces, schPedidosProveedorServer_Intf, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_PEDIDOS_PROVEEDOR = 'Server.PedidosProveedor'; + REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; + +type + TBizPedidosProveedorServer = class(TPedidosProveedorBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schPedidosProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizPedidosProveedorServer } + +procedure TBizPedidosProveedorServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_PedidosProveedorREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_PedidosProveedorREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]; + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'ID_EMPRESA'], [REF_PEDIDOS_PROVEEDOR, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_PEDIDOS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_PEDIDOS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PEDIDOS_PROVEEDOR, TBizPedidosProveedorServer); + +end. 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 00000000..452c9cce --- /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.dpk b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk new file mode 100644 index 00000000..e632d6e1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk @@ -0,0 +1,43 @@ +package PedidosProveedor_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + PedidosProveedor_controller, + PedidosProveedor_view, + Articulos_view; + +contains + uPluginPedidosProveedor in 'uPluginPedidosProveedor.pas' {PluginPedidosProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dfm new file mode 100644 index 00000000..20491911 --- /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 = 101 + 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 00000000..2b958ae7 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.pas @@ -0,0 +1,74 @@ +unit uPluginPedidosProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCPedidosProveedor = interface(IInterface) + ['{E2ACE521-1B3E-4AFD-99F4-058E328D39D1}'] + end; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + 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; + uPedidosProveedorViewRegister.RegisterViews; +end; + +destructor TPluginPedidosProveedor.Destroy; +begin + uPedidosProveedorViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginPedidosProveedor); + +finalization + UnRegisterModuleClass(TPluginPedidosProveedor); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.bdsgroup b/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.bdsgroup new file mode 100644 index 00000000..0e529257 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.bdsgroup @@ -0,0 +1,34 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\ClassRegistry\ClassRegistry.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + Model\Presupuestos_model.bdsproj + Data\Presupuestos_data.bdsproj + Controller\Presupuestos_controller.bdsproj + Views\Presupuestos_view.bdsproj + Plugin\Presupuestos_plugin.bdsproj + Test\Presupuestos_Test.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl ClassRegistry.bpl Contactos_view.bpl Presupuestos_model.bpl Presupuestos_data.bpl Presupuestos_controller.bpl Presupuestos_view.bpl Presupuestos_plugin.bpl Presupuestos_Test.exe + + + + + + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.config b/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Presupuestos_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file 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 00000000..fc2c742d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm @@ -0,0 +1,757 @@ +object RptPedidosProveedor: TRptPedidosProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '33' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'SELECT'#10' V_PEDIDOS_PROVEEDOR.ID,'#10' V_PEDIDOS_PROVEEDOR.ID_EMPRES' + + 'A,'#10' V_PEDIDOS_PROVEEDOR.REFERENCIA,'#10' V_PEDIDOS_PROVEEDOR.FECHA' + + '_PEDIDO,'#10' V_PEDIDOS_PROVEEDOR.OBSERVACIONES,'#10' V_PEDIDOS_PROVEE' + + 'DOR.CALLE,'#10' V_PEDIDOS_PROVEEDOR.POBLACION,'#10' V_PEDIDOS_PROVEEDO' + + 'R.PROVINCIA,'#10' V_PEDIDOS_PROVEEDOR.CODIGO_POSTAL,'#10' V_PEDIDOS_PR' + + 'OVEEDOR.PERSONA_CONTACTO,'#10' V_PEDIDOS_PROVEEDOR.TELEFONO,'#10' V_PR' + + 'OVEEDORES.NOMBRE,'#10' ALMACENES.NOMBRE AS NOMBRE_ALMACEN,'#10' EMPRES' + + 'AS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NOMBRE AS NOMBRE_EMPRE' + + 'SA,'#10' EMPRESAS.RAZON_SOCIAL AS RAZON_SOCIAL_EMPRESA,'#10' EMPRESAS.' + + 'TELEFONO_1 AS TELEFONO_1_EMPRESA,'#10' EMPRESAS.FAX AS FAX_EMPRESA,' + + #10' EMPRESAS.MOVIL_1 AS MOVIL_1_EMPRESA,'#10' EMPRESAS.EMAIL_1 AS EM' + + 'AIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGINA_WEB_EMPRESA'#10'FROM'#10 + + ' V_PEDIDOS_PROVEEDOR'#10' LEFT OUTER JOIN V_PROVEEDORES ON (V_PROV' + + 'EEDORES.ID = V_PEDIDOS_PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN' + + ' ALMACENES ON (ALMACENES.ID = V_PEDIDOS_PROVEEDOR.ID_ALMACEN)'#10' ' + + 'LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_PEDIDOS_PROVEEDOR.I' + + 'D_EMPRESA)'#10'WHERE V_PEDIDOS_PROVEEDOR.ID = :ID' + 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 = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'NOMBRE_EMPRESA' + TableField = 'NOMBRE_EMPRESA' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL_EMPRESA' + TableField = 'RAZON_SOCIAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1_EMPRESA' + TableField = 'TELEFONO_1_EMPRESA' + end + item + DatasetField = 'FAX_EMPRESA' + TableField = 'FAX_EMPRESA' + end + item + DatasetField = 'MOVIL_1_EMPRESA' + TableField = 'MOVIL_1_EMPRESA' + end + item + DatasetField = 'EMAIL_1_EMPRESA' + TableField = 'EMAIL_1_EMPRESA' + end + item + DatasetField = 'PAGINA_WEB_EMPRESA' + TableField = 'PAGINA_WEB_EMPRESA' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'SELECT PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES' + + '.ID_PEDIDO,'#10' PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_' + + 'PROVEEDOR_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_PROVEEDOR_DETALL' + + 'ES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD,'#10' PEDIDOS' + + '_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.I' + + 'MPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, AR' + + 'TICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10'FROM PEDIDOS_PR' + + 'OVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON (PEDIDOS_PROVEEDOR_DETAL' + + 'LES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE ID_PEDIDO = :ID_PEDIDO'#10'ORD' + + 'ER BY POSICION' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39226.712455682900000000 + 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);' + 'begin' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39')' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39')' + ' or ( <> '#39#39') then' + + ' DireccionEnvio.Lines.Add( + ' + + ');' + '' + ' DireccionEnvio.Lines.Add();' + + '// DireccionEnvio.Lines.Add( ' + + '+ '#39' '#39' + );' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = <> + 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/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas new file mode 100644 index 00000000..7dd12db1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas @@ -0,0 +1,93 @@ +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; + +type + TRptPedidosProveedor = 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); + private + FConnection: IDAConnection; + public + function GenerarPedido(const AID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schPedidosProveedorClient_Intf; + +const + rptInforme = 'InfPedidoProveedor.fr3'; + + { Dataset names for schReport } + 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; +end; + +function TRptPedidosProveedor.GenerarPedido(const AID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_PEDIDO'], [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 + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..50b3c2f1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm @@ -0,0 +1,3044 @@ +object srvPedidosProveedor: TsrvPedidosProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schPedidosProveedor + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 490 + Width = 473 + object schPedidosProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + + 'IGO'#10'AND ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SI' + + 'TUACION, '#10' FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FEC' + + 'HA_ENTREGA, '#10' ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPO' + + 'RTE_TOTAL, '#10' INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACI' + + 'ON, '#10' PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, '#10 + + ' FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, ' + + #10' REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, '#10' ' + + ' IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, '#10' ID_' + + 'FORMA_PAGO'#10' FROM'#10' V_PEDIDOS_PROVEEDOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + 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 = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + 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 = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'ID_PEDIDO_CLIENTE' + TableField = 'ID_PEDIDO_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 = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'REF_PED_CLIENTE' + TableField = 'REF_PED_CLIENTE' + end> + end> + Name = 'PedidosProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_CONFIRMACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ENTREGA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORT' + + 'E_TOTAL,'#10' PEDIDOS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' PEDIDOS_PR' + + 'OVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUEN' + + 'TO,'#10' PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.' + + 'REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10'F' + + 'ROM PEDIDOS_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON PEDIDOS_PR' + + 'OVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE PEDIDOS_PROVEE' + + 'DOR_DETALLES.ID_PEDIDO = :ID_PEDIDO'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'PedidosProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + 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.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORT' + + 'E_TOTAL,'#10' PEDIDOS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' PEDIDOS_PR' + + 'OVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUEN' + + 'TO,'#10' PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.' + + 'REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10'F' + + 'ROM PEDIDOS_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON PEDIDOS_PR' + + 'OVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'WHERE PEDIDOS_PROVEE' + + 'DOR_DETALLES.ID_PEDIDO = :ID_PEDIDO'#10'AND PEDIDOS_PROVEEDOR_DETALL' + + 'ES.ID = :ID'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'PedidosProveedor_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SI' + + 'TUACION, '#10' FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FEC' + + 'HA_ENTREGA, '#10' ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPO' + + 'RTE_TOTAL, '#10' INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACI' + + 'ON, '#10' PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, '#10 + + ' FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, ' + + #10' REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, '#10' ' + + ' IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, '#10' ID_' + + 'FORMA_PAGO'#10' FROM'#10' V_PEDIDOS_PROVEEDOR'#10'WHERE V_PEDIDOS_PROVEE' + + 'DOR.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + 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 = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + 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 = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'ID_PEDIDO_CLIENTE' + TableField = 'ID_PEDIDO_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 = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'REF_PED_CLIENTE' + TableField = 'REF_PED_CLIENTE' + end> + end> + Name = 'PedidosProveedor_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_CONFIRMACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ENTREGA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_NOMBRE_ALMACEN' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_PED_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PED_PROV_ARTICULOS' + SQL = + 'select V_PED_PROV_ARTICULOS.ID_PEDIDO,'#10' ARTICULOS.REFERENC' + + 'IA,'#10' V_PED_PROV_ARTICULOS.ID_ARTICULO,'#10' ARTICULOS.DE' + + 'SCRIPCION as CONCEPTO,'#10' V_PED_PROV_ARTICULOS.CANTIDAD_PEND' + + 'IENTE as CANTIDAD,'#10' ARTICULOS.REFERENCIA_PROV as REFERENCI' + + 'A_PROVEEDOR'#10#10'FROM V_PED_PROV_ARTICULOS'#10'LEFT JOIN ARTICULOS ON (A' + + 'RTICULOS.ID = V_PED_PROV_ARTICULOS.ID_ARTICULO)'#10'WHERE (V_PED_PRO' + + 'V_ARTICULOS.CANTIDAD_PENDIENTE <> 0)'#10'AND (V_PED_PROV_ARTICULOS.I' + + 'D_PEDIDO = :ID)' + 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 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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 = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO PEDIDOS_PROVEEDOR_DETALLES'#10' (CANTIDAD, POSICION' + + ', ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, '#10' IMPORTE_TOTA' + + 'L, VISIBLE, ID_PEDIDO,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_PORT' + + 'E)'#10' VALUES'#10' (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CONC' + + 'EPTO, '#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_PEDID' + + 'O, '#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'UPDATE PEDIDOS_PROVEEDOR_DETALLES'#10' SET '#10' CANTIDAD = :CANTIDA' + + 'D, '#10' POSICION = :POSICION, '#10' ID = :ID, '#10' TIPO_DETALLE =' + + ' :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' IMPORTE_UNIDAD =' + + ' :IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' VISI' + + 'BLE = :VISIBLE, '#10' ID_PEDIDO = :ID_PEDIDO, '#10' ID_ARTICULO = ' + + ':ID_ARTICULO,'#10' DESCUENTO = :DESCUENTO,'#10' IMPORTE_PORTE = :I' + + 'MPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosProveedor_Detalles' + end + item + Params = < + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO PEDIDOS_PROVEEDOR'#10' (USUARIO, OBSERVACIONES, REF' + + 'ERENCIA, ID, ID_EMPRESA,'#10' FECHA_ALTA, FECHA_MODIFICACION, ID' + + '_PROVEEDOR, FECHA_ENVIO,'#10' FECHA_PEDIDO, FECHA_CONFIRMACION, ' + + 'FECHA_ENTREGA, INCIDENCIAS, '#10' IMPORTE_TOTAL, INCIDENCIAS_ACT' + + 'IVAS, ID_ALMACEN, CALLE, '#10' POBLACION, PROVINCIA, CODIGO_POST' + + 'AL, PERSONA_CONTACTO, '#10' TELEFONO, ID_PEDIDO_CLIENTE, IMPORTE' + + '_NETO, IMPORTE_PORTE, '#10' DESCUENTO, IMPORTE_DESCUENTO, BASE_I' + + 'MPONIBLE, IVA, '#10' IMPORTE_IVA, ID_FORMA_PAGO)'#10' VALUES'#10' (:' + + 'USUARIO, :OBSERVACIONES, :REFERENCIA, :ID,'#10' :ID_EMPRESA, :FE' + + 'CHA_ALTA, :FECHA_MODIFICACION,'#10' :ID_PROVEEDOR, :FECHA_ENVIO,' + + ' :FECHA_PEDIDO, :FECHA_CONFIRMACION,'#10' :FECHA_ENTREGA, :INCID' + + 'ENCIAS, :IMPORTE_TOTAL, :INCIDENCIAS_ACTIVAS, '#10' :ID_ALMACEN,' + + ' :CALLE, :POBLACION, :PROVINCIA, :CODIGO_POSTAL, '#10' :PERSONA_' + + 'CONTACTO, :TELEFONO, :ID_PEDIDO_CLIENTE, :IMPORTE_NETO, '#10' :I' + + 'MPORTE_PORTE, :DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIBLE, '#10 + + ' :IVA, :IMPORTE_IVA, :ID_FORMA_PAGO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosProveedor' + end + item + Params = < + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'UPDATE PEDIDOS_PROVEEDOR'#10' SET '#10' USUARIO = :USUARIO, '#10' OBS' + + 'ERVACIONES = :OBSERVACIONES, '#10' REFERENCIA = :REFERENCIA,'#10' ' + + 'ID_EMPRESA = :ID_EMPRESA,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECH' + + 'A_MODIFICACION = :FECHA_MODIFICACION, '#10' ID_PROVEEDOR = :ID_PR' + + 'OVEEDOR, '#10' FECHA_ENVIO = :FECHA_ENVIO,'#10' FECHA_PEDIDO = :FE' + + 'CHA_PEDIDO, '#10' FECHA_CONFIRMACION = :FECHA_CONFIRMACION, '#10' ' + + 'FECHA_ENTREGA = :FECHA_ENTREGA, '#10' INCIDENCIAS = :INCIDENCIAS,' + + ' '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' INCIDENCIAS_ACTIVAS =' + + ' :INCIDENCIAS_ACTIVAS, '#10' ID_ALMACEN = :ID_ALMACEN, '#10' CALLE' + + ' = :CALLE, '#10' POBLACION = :POBLACION, '#10' PROVINCIA = :PROVIN' + + 'CIA, '#10' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' PERSONA_CONTACTO ' + + '= :PERSONA_CONTACTO, '#10' TELEFONO = :TELEFONO, '#10' ID_PEDIDO_C' + + 'LIENTE = :ID_PEDIDO_CLIENTE, '#10' IMPORTE_NETO = :IMPORTE_NETO, ' + + #10' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' DESCUENTO = :DESCUENTO' + + ', '#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO, '#10' BASE_IMPONIB' + + 'LE = :BASE_IMPONIBLE, '#10' IVA = :IVA, '#10' IMPORTE_IVA = :IMPOR' + + 'TE_IVA, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO'#10' WHERE'#10' (ID = :O' + + 'LD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosProveedor' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert PedidosProveedor' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PedidosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert PedidosProveedor_Detalles' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PedidosProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PedidosProveedor' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PedidosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PedidosProveedor_Detalles' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PedidosProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PedidosProveedor_Detalles' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PedidosProveedor_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PedidosProveedor' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PedidosProveedor' + FailureBehaviour = fbRaiseException + end> + Left = 88 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 88 + Top = 88 + end + object bpPedidosProveedor: TDABusinessProcessor + Schema = schPedidosProveedor + InsertCommandName = 'Insert_PedidosProveedor' + DeleteCommandName = 'Delete_PedidosProveedor' + UpdateCommandName = 'Update_PedidosProveedor' + RefreshDatasetName = 'PedidosProveedor_Refresh' + ReferencedDataset = 'PedidosProveedor' + ProcessorOptions = [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' + RefreshDatasetName = 'PedidosProveedor_Detalles_Refresh' + ReferencedDataset = 'PedidosProveedor_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 240 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'PedidosProveedor_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del proveedor' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha pedido' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'POSICION' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TIPO_DETALLE' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONCEPTO' + Alignment = taLeftJustify + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'VISIBLE' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_FECHA_CONFIRMACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Confirmado?' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_FECHA_ENTREGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Entrega prevista' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_ID_ALMACEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'PedidosProveedor_FECHA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = #191'Enviado?' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Almac'#233'n' + Alignment = taLeftJustify + end + item + Name = 'PedidosProveedor_REF_PED_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end> + Left = 88 + Top = 152 + 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 00000000..4b430968 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas @@ -0,0 +1,110 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvPedidosProveedor } + TsrvPedidosProveedor = class(TDARemoteService, IsrvPedidosProveedor) + DABINAdapter: TDABINAdapter; + bpPedidosProveedor: TDABusinessProcessor; + bpPedidosProveedor_Detalles: TDABusinessProcessor; + schPedidosProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvPedidosProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schPedidosProveedorClient_Intf, uRestriccionesUsuarioUtils, + uRptPedidosProveedor_Server, uBizPedidosProveedorServer; + +{ uRORemoteDataModule, + fServerForm, Variants, IB, schPedidosProveedorClient_Intf; +} +procedure Create_srvPedidosProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvPedidosProveedor.Create(NIL); +end; + +{ srvPedidosProveedor } +procedure TsrvPedidosProveedor.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvPedidosProveedor.GenerateReport(const ID: Integer): Binary; +var + AReportGenerator : TRptPedidosProveedor; +begin + AReportGenerator := TRptPedidosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarPedido(ID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPedidosProveedor.GetNextAutoInc( + const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +initialization + TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.bdsproj b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.bdsproj new file mode 100644 index 00000000..c5dacc4d --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/Presupuestos_Test.dpr b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.dpr new file mode 100644 index 00000000..5b596879 --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/Presupuestos_Test.drc b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.res b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.res new file mode 100644 index 00000000..37a3dbd7 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Test/Presupuestos_Test.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Test/uDataModulePresupuestos_Test.pas b/Source/Modulos/Pedidos a proveedor/Test/uDataModulePresupuestos_Test.pas new file mode 100644 index 00000000..b054a7ca --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/uHostMainForm.dfm b/Source/Modulos/Pedidos a proveedor/Test/uHostMainForm.dfm new file mode 100644 index 00000000..1de986c4 --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/uHostMainForm.pas b/Source/Modulos/Pedidos a proveedor/Test/uHostMainForm.pas new file mode 100644 index 00000000..50f4b46e --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/uPluginPresupuestos_Test.pas b/Source/Modulos/Pedidos a proveedor/Test/uPluginPresupuestos_Test.pas new file mode 100644 index 00000000..e8df46e1 --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Test/uPresupuestosController_Test.pas b/Source/Modulos/Pedidos a proveedor/Test/uPresupuestosController_Test.pas new file mode 100644 index 00000000..e5e483c4 --- /dev/null +++ b/Source/Modulos/Pedidos a 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/Pedidos a proveedor/Views/Contactos_data.drc b/Source/Modulos/Pedidos a proveedor/Views/Contactos_data.drc new file mode 100644 index 00000000..09081cc2 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/Contactos_data.drc @@ -0,0 +1,21 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */ + "\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */ + "\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */ + "\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */ + "\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */ + "\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */ + "\x53", "\x00", "\x00", "\x00" /* 0030: S... */ +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 00000000..29a33ec9 --- /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.dpk b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk new file mode 100644 index 00000000..22a59e9b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk @@ -0,0 +1,117 @@ +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 + rtl, + vcl, + dbrtl, + vcldb, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + GUIBase, + Contactos_model, + Contactos_view, + DataAbstract_D10, + Empresas_controller, + PedidosProveedor_model, + PedidosProveedor_controller, + PedidosProveedor_data, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + JvGlobusD10R, + VclSmp, + vclie, + Articulos_view, + Almacenes_controller, + Almacenes_model, + dxLayoutControlD10, + FormasPago_model, + FormasPago_controller, + Inventario_model, + Inventario_controller, + AlbaranesProveedor_model, + AlbaranesProveedor_controller, + PedCli_PedProv_relation, + PedProv_AlbProv_relation; + +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}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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/uEditorDireccionEntregaPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dfm new file mode 100644 index 00000000..79bb2a87 --- /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 = 257 + ClientWidth = 453 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + OnClose = FormClose + 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 Label2: TLabel + Left = 20 + Top = 89 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Poblaci'#243'n:' + end + object Label3: TLabel + Left = 20 + Top = 117 + 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 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 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 ePoblacion: TDBEdit + Left = 135 + Top = 86 + Width = 210 + Height = 21 + DataField = 'POBLACION' + DataSource = dsDireccion + TabOrder = 3 + end + object eProvincia: TDBEdit + Left = 135 + Top = 114 + Width = 210 + Height = 21 + DataField = 'PROVINCIA' + DataSource = dsDireccion + TabOrder = 4 + end + object eCodigoPostal: TDBEdit + Left = 135 + Top = 140 + Width = 210 + Height = 21 + DataField = 'CODIGO_POSTAL' + DataSource = dsDireccion + TabOrder = 5 + end + object ePersonaContacto: TDBEdit + Left = 135 + Top = 182 + Width = 210 + Height = 21 + DataField = 'PERSONA_CONTACTO' + DataSource = dsDireccion + TabOrder = 6 + end + object eTelefono: TDBEdit + Left = 136 + Top = 207 + Width = 210 + Height = 21 + DataField = 'TELEFONO' + DataSource = dsDireccion + TabOrder = 7 + 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 00000000..34299e65 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.pas @@ -0,0 +1,92 @@ +unit uEditorDireccionEntregaPedidoProveedor; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorDireccionEntregaPedidoProveedor, uBizPedidosProveedor; + +type + TfEditorDireccionEntregaPedidoProveedor = class(TForm, IEditorDireccionEntregaPedidoProveedor) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eDireccion: TDBEdit; + ePoblacion: TDBEdit; + eProvincia: TDBEdit; + eCodigoPostal: TDBEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + dsDireccion: TDADataSource; + Label6: TLabel; + ePersonaContacto: TDBEdit; + Label7: TLabel; + eTelefono: TDBEdit; + + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + + private + pDireccion: String; + pPoblacion: String; + pProvincia: String; + pCodigoPostal: String; + pPersonaContacto: String; + pTelefono: String; + + FPedido : IBizPedidoProveedor; + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + end; + +implementation +{$R *.dfm} + + +{ TfEditorDireccionEntrega } + +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; + ePoblacion.Field.Value := pPoblacion; + eProvincia.Field.Value := pProvincia; + eCodigoPostal.Field.Value := pCodigoPostal; + ePersonaContacto.Field.Value := pPersonaContacto; + eTelefono.Field.Value := pTelefono; + end; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.FormShow(Sender: TObject); +begin + //Guardamos los valores iniciales por si al final el usuario cancela + pDireccion := eDireccion.Text; + pPoblacion := ePoblacion.Text; + pProvincia := eProvincia.Text; + pCodigoPostal := eCodigoPostal.Text; + pPersonaContacto := ePersonaContacto.Text; + pTelefono := eTelefono.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.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm new file mode 100644 index 00000000..567c1058 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosPedidoProveedor: TfEditorElegirArticulosPedidoProveedor + Caption = 'fEditorElegirArticulosPedidoProveedor' + ExplicitHeight = 480 + 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 00000000..cd92cf74 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.pas @@ -0,0 +1,33 @@ +unit uEditorElegirArticulosPedidoProveedor; + +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, + JvgWizardHeader, uIEditorElegirArticulosPedidosProveedor; + +type + TfEditorElegirArticulosPedidoProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosPedidosProveedor) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosPedidosProveedor; + +{ TfEditorElegirArticulosPedidoProveedor } + +procedure TfEditorElegirArticulosPedidoProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosPedidosProveedor) as IViewElegirArticulosPedidosProveedor; +end; + +end. 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 00000000..d746cd55 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm @@ -0,0 +1,220 @@ +inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor + Caption = 'Seleccionar pedido de cliente' + ClientWidth = 656 + ExplicitWidth = 664 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 656 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el pedido de proveedor') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitTop = 16 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Caption = 'Lista de pedidos de proveedor' + Visible = False + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 656 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Align = alRight + ExplicitWidth = 117 + 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 + Left = 117 + Top = 23 + DockPos = 115 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + Visible = False + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 376 + 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 = 376 + 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 + inherited frViewPedidosProveedor1: TfrViewPedidosProveedor [5] + Top = 136 + Width = 656 + Height = 240 + ExplicitTop = 136 + ExplicitWidth = 656 + ExplicitHeight = 240 + inherited cxGrid: TcxGrid + Width = 656 + Height = 240 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 656 + ExplicitHeight = 240 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + Column = frViewPedidosProveedor1.cxGridViewNOMBRE + end> + inherited cxGridViewCODIGO: TcxGridDBColumn + IsCaptionAssigned = True + 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 actRecibirPedido: 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 + 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 00000000..6e0437b6 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.pas @@ -0,0 +1,126 @@ +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, JvgWizardHeader, StdCtrls, + uBizPedidosProveedor, uIEditorElegirPedidosProveedor, + JvExComCtrls, JvStatusBar, uEditorPedidosProveedor, uViewPedidosProveedor, + JSDialog; + +type + TfEditorElegirPedidosProveedor = class(TfEditorPedidosProveedor, IEditorElegirPedidosProveedor) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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, + uGridUtils, 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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirPedidosProveedor.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirPedidosProveedor.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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/uEditorPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm new file mode 100644 index 00000000..93349d65 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm @@ -0,0 +1,419 @@ +inherited fEditorPedidoProveedor: TfEditorPedidoProveedor + Left = 332 + Top = 147 + Caption = 'Nuevo pedido a proveedor' + ClientHeight = 617 + ClientWidth = 765 + OnClose = CustomEditorClose + ExplicitWidth = 773 + ExplicitHeight = 651 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 765 + Caption = 'Nuevo pedido a proveedor' + ExplicitWidth = 765 + inherited Image1: TImage + Left = 738 + 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 + end + inherited TBXDock: TTBXDock + Width = 765 + ExplicitWidth = 765 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + 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 = 765 + Height = 476 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 765 + ExplicitHeight = 476 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 757 + ExplicitHeight = 448 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesPedidoProveedor1: TfrViewDetallesPedidoProveedor + Left = 0 + Top = 0 + Width = 757 + Height = 448 + 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 = 757 + ExplicitHeight = 448 + inherited ToolBar1: TToolBar + Width = 757 + ExplicitWidth = 757 + inherited UpDown1: TUpDown + Left = 237 + ExplicitLeft = 237 + end + inherited ToolButton13: TToolButton + Left = 254 + ExplicitLeft = 254 + end + inherited ToolButton6: TToolButton + Left = 262 + ExplicitLeft = 262 + end + inherited ToolButton7: TToolButton + Left = 296 + ExplicitLeft = 296 + end + inherited ToolButton8: TToolButton + Left = 330 + ExplicitLeft = 330 + end + inherited ToolButton12: TToolButton + Left = 364 + ExplicitLeft = 364 + end + inherited ToolButton9: TToolButton + Left = 372 + ExplicitLeft = 372 + end + inherited ToolButton10: TToolButton + Left = 406 + ExplicitLeft = 406 + end + inherited ToolButton11: TToolButton + Left = 440 + ExplicitLeft = 440 + end + end + inherited cxGrid: TcxGrid + Width = 757 + Height = 376 + ExplicitWidth = 757 + ExplicitHeight = 376 + end + inherited TBXDock1: TTBXDock + Width = 757 + ExplicitTop = 46 + ExplicitWidth = 757 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + inline frViewIncidenciasProv: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 757 + Height = 448 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 757 + ExplicitHeight = 448 + inherited pnlSup: TPanel + Width = 757 + ExplicitWidth = 757 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 757 + Height = 420 + ExplicitWidth = 757 + ExplicitHeight = 420 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 734 + ExplicitHeight = 387 + Height = 387 + Width = 734 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 598 + Width = 765 + Panels = < + item + Width = 200 + end> + ExplicitTop = 598 + ExplicitWidth = 765 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 552 + 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 = 552 + ExplicitWidth = 765 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 765 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 765 + inherited Bevel1: TBevel + Left = 93 + Top = 92 + Width = 73 + ExplicitLeft = 93 + ExplicitTop = 92 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 379 + Top = 11 + Height = 30 + ExplicitLeft = 379 + ExplicitTop = 11 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 491 + Top = 92 + Width = 21 + ExplicitLeft = 491 + ExplicitTop = 92 + ExplicitWidth = 21 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 164 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 164 + ExplicitTop = 112 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 562 + Top = 38 + Style.IsFontAssigned = True + ExplicitLeft = 562 + ExplicitTop = 38 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 492 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 492 + ExplicitTop = 112 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 93 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 112 + end + inherited edtIVA: TcxDBSpinEdit + Left = 491 + Top = 38 + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 38 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 491 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 11 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 491 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 65 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 562 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 562 + ExplicitTop = 65 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 93 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 11 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 93 + Top = 139 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 139 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 93 + Top = 38 + DataBinding.DataField = '' + DataBinding.DataSource = nil + ExplicitLeft = 93 + ExplicitTop = 38 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 231 + Top = 38 + ExplicitLeft = 231 + ExplicitTop = 38 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 93 + Top = 65 + DataBinding.DataField = '' + ExplicitLeft = 93 + ExplicitTop = 65 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + 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/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas new file mode 100644 index 00000000..f946c7c5 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas @@ -0,0 +1,282 @@ +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; + +type + TfEditorPedidoProveedor = class(TfEditorDBItem, IEditorPedidoProveedor) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasProv: TfrViewIncidencias; + frViewDetallesPedidoProveedor1: TfrViewDetallesPedidoProveedor; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); override; + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure actEliminarUpdate(Sender: TObject); + + 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); + + //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, uGridUtils, uDialogUtils; + +{$R *.dfm} + +{ TfEditorPedidoProveedor } + +{ +**************************** TfEditorPedidoProveedor **************************** +} + +procedure TfEditorPedidoProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (Pedido.SITUACION = SITUACION_PEDIDO_PENDIENTE); +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?', 'Atención', 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 ningún pedido asignado'); + + Pedido.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +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; + bEsNuevo := False; + + 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 código ' + FPedido.REFERENCIA); + + Modified := False; +end; + +procedure TfEditorPedidoProveedor.ImprimirInterno; +begin + inherited; + FController.Print(FPedido); +end; + +procedure TfEditorPedidoProveedor.OnProveedorChanged(Sender: TObject); +begin + FPedido.Proveedor := ViewPedido.ViewProveedorPedido.Proveedor; + + // Si el pedido tiene detalles hay que mirar si los descuentos y otros campos + // para los artículos hay que cambiarlos. + if (FPedido.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FPedido.Detalles, FPedido.Proveedor); +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 + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorPedidoProveedor.PrevisualizarInterno; +begin + inherited; + FController.Preview(FPedido); +end; + +procedure TfEditorPedidoProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewPedido.ViewProveedorPedido.Controller := Controller.ProveedorController; + 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 + FViewPedido.Pedido := FPedido; + ViewPedido.ViewProveedorPedido.OnProveedorChanged := NIL; + ViewPedido.ViewProveedorPedido.Proveedor := FPedido.Proveedor; + ViewPedido.ViewProveedorPedido.OnProveedorChanged := OnProveedorChanged; + frViewDetallesPedidoProveedor1.Detalles := FPedido.Detalles; + frViewDetallesPedidoProveedor1.Pedido := FPedido; //Para poder sacar los articulos del proveedor seleccionado + end; + end; +end; + +procedure TfEditorPedidoProveedor.SetViewPedido(const Value: IViewPedidoProveedor); +begin + FViewPedido := Value; + + if Assigned(FViewPedido) and Assigned(Pedido) then + FViewPedido.Pedido := Pedido; +end; + +end. 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 00000000..df583ad8 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dfm @@ -0,0 +1,2513 @@ +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 TBXSeparatorItem17: TTBXSeparatorItem [8] + end + object TBXItem38: TTBXItem [9] + Action = actRecibirPedido + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 700 + end + end + inherited StatusBar: TJvStatusBar + Width = 700 + ExplicitWidth = 700 + end + inline frViewPedidosProveedor1: TfrViewPedidosProveedor [3] + Left = 0 + Top = 102 + Width = 700 + 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 = 700 + ExplicitHeight = 323 + inherited cxGrid: TcxGrid + Width = 700 + Height = 195 + ExplicitWidth = 700 + ExplicitHeight = 195 + 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> + inherited cxGridViewCODIGO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 700 + ExplicitWidth = 700 + inherited TBXDock1: TTBXDock + Width = 700 + ExplicitWidth = 700 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 700 + inherited dxLayoutControl1: TdxLayoutControl + Width = 696 + ExplicitWidth = 696 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 483 + ExplicitLeft = 483 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 696 + ExplicitWidth = 696 + inherited tbxBotones: TTBXToolbar + Width = 686 + ExplicitWidth = 686 + end + end + end + end + inherited ActionList1: TActionList + Left = 376 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + ExplicitTop = 297 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 + 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 + 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 seleccionado' + 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 seleccionado' + 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 +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 00000000..ad341d74 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas @@ -0,0 +1,259 @@ +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; + +type + TfEditorPedidosProveedor = class(TfEditorGridBase, IEditorPedidosProveedor) + frViewPedidosProveedor1: TfrViewPedidosProveedor; + N4: TMenuItem; + Cambiarsituacin1: TMenuItem; + actRecibirPedido: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + JsNuevoPedidoProveedorDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actCambiarSituacionExecute(Sender: TObject); + procedure actRecibirPedidoUpdate(Sender: TObject); + procedure actRecibirPedidoExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + + 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; + 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, uEditorDBBase, + uInventarioController, uBizInventario, uDialogUtils, + uAlbaranesProveedorController, uBizAlbaranesProveedor, + uGenerarPedidosProvUtils, uGenerarAlbaranesProvUtils; + +{$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 := HayDatos + and (FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE); +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 + (FPedidos.SITUACION <> SITUACION_PEDIDO_RECIBIDO); +end; + +constructor TfEditorPedidosProveedor.Create(AOwner: TComponent); +begin + inherited; + 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; +begin + if (Application.MessageBox('¿Desea borrar este pedido a proveedor?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(Pedidos); + inherited; + end; +end; + +procedure TfEditorPedidosProveedor.FormShow(Sender: TObject); +begin + 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; +begin + //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 + FController.Print(FPedidos); + end; + end; + end; + end; +end; + +procedure TfEditorPedidosProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Pedidos); +end; + +procedure TfEditorPedidosProveedor.NuevoInterno; +var + Respuesta : Integer; + +begin + inherited; + + 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; + +end; + +procedure TfEditorPedidosProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de pedidos a proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPedidosProveedor.PrevisualizarInterno; +var + Respuesta : Integer; +begin + //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 + FController.Preview(FPedidos); + end; + end; + end; + end; +end; + +procedure TfEditorPedidosProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; +end; + +procedure TfEditorPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor); +begin + FPedidos := Value; + dsDataTable.DataTable := FPedidos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewPedidosProveedor).Pedidos := Pedidos; +end; + +end. 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 00000000..3ebda046 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorPedidosProveedorPreview: TfEditorPedidosProveedorPreview + Caption = 'Previsualizar el pedidos proveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + 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 00000000..dffbc055 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.pas @@ -0,0 +1,28 @@ +unit uEditorPedidosProveedorReport; + +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, uIEditorPedidosProveedorPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorPedidosProveedorPreview = class(TfEditorPreview, IEditorPedidosProveedorPreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. 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 00000000..bd79ad52 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dfm @@ -0,0 +1,215 @@ +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 JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 434 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Cambiar la situaci'#243'n del pedido') + Comments.Strings = ( + + 'Indique la nueva situaci'#243'n del pedido o pulse en '#39'Cancelar'#39' para' + + ' no hacer ning'#250'n cambio.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitWidth = 491 + 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 00000000..e1b7946f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.pas @@ -0,0 +1,147 @@ +unit uEditorSituacionPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, + uIEditorSituacionPedidoProveedor, uPedidosProveedorController, uBizPedidosProveedor, + JvExControls, JvComponent, JvgWizardHeader, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, ActnList; + +type + TfEditorSituacionPedidoProveedor = class(TForm, IEditorSituacionPedidoProveedor) + pnlSeleccion: TPanel; + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + 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.pas b/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.pas new file mode 100644 index 00000000..6307afb7 --- /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/uViewDetallesPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm new file mode 100644 index 00000000..677a752c --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm @@ -0,0 +1,2 @@ +inherited frViewDetallesPedidoProveedor: TfrViewDetallesPedidoProveedor +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 00000000..fb562684 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas @@ -0,0 +1,73 @@ +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; + +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) + procedure CustomViewDestroy(Sender: TObject); + protected + FPedido: IBizPedidoProveedor; + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + + procedure AnadirArticulosInterno; 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 + 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.SetPedido(const Value: IBizPedidoProveedor); +begin + FPedido := Value; +end; + +end. 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 00000000..d59bf99e --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm @@ -0,0 +1,153 @@ +inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv + Width = 586 + Height = 301 + ExplicitWidth = 586 + ExplicitHeight = 301 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 586 + Height = 301 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 586 + 301) + object rdxDestino1: TRadioButton + Left = 10 + Top = 10 + Width = 255 + Height = 17 + Action = actLista + TabOrder = 0 + TabStop = True + end + object rdxDestino2: TRadioButton + Left = 10 + Top = 60 + Width = 287 + Height = 17 + Action = actOtro + TabOrder = 2 + end + object cbLista: TcxDBLookupComboBox + Left = 25 + Top = 33 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = dsPedido + Properties.DropDownListStyle = lsFixedList + Properties.GridMode = True + 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.ListSource = dsAlmacenes + Properties.PostPopupValueOnTab = True + 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 = 1 + Width = 425 + end + object bModificar: TBitBtn + Left = 448 + Top = 266 + Width = 128 + Height = 25 + Caption = 'Modificar la direcci'#243'n...' + TabOrder = 4 + OnClick = bModificarClick + end + object txtDireccion: TStaticText + Left = 25 + Top = 83 + Width = 551 + Height = 177 + AutoSize = False + BevelKind = bkFlat + TabOrder = 3 + OnDblClick = txtDireccionDblClick + 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' + Offsets.Left = 15 + ShowCaption = False + Control = cbLista + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = rdxDestino2 + 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 + end + end + object ActionList1: TActionList + Left = 80 + Top = 16 + 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 + end + object dsPedido: TDADataSource + Left = 40 + Top = 8 + end + object dsAlmacenes: TDADataSource + Left = 8 + Top = 40 + 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 00000000..855f1c05 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas @@ -0,0 +1,197 @@ +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; + +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; + rdxDestino2: TRadioButton; + cbLista: TcxDBLookupComboBox; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutItem1: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + ActionList1: TActionList; + actLista: TAction; + actOtro: TAction; + dsPedido: TDADataSource; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item1: TdxLayoutItem; + bModificar: TBitBtn; + txtDireccion: TStaticText; + dxLayoutControl1Item5: TdxLayoutItem; + 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); + protected + FAlmacenesController : IAlmacenesController; + FAlmacenes: IBizAlmacen; + FPedido : IBizPedidoProveedor; + FController : IPedidosProveedorController; + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + procedure CambioDireccionAlmacen; + procedure RefrescarDireccion; + public + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uEditorRegistryUtils; + +procedure TfrViewDireccionEntregaPedidoProv.actListaExecute(Sender: TObject); +begin + actLista.Checked := True; + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject); +begin + actOtro.Checked := True; +// txtDireccion.Enabled := True; + + if Assigned(FPedido) then + begin + FController.VerDireccionEntrega(FPedido); + + if (FPedido.ID_ALMACEN > 0) then + begin + FPedido.Edit; + FPedido.ID_ALMACEN := 0; + end; + end; + RefrescarDireccion; +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; + FPedido.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; + FPedido.TELEFONO := FAlmacenes.TELEFONO; + RefrescarDireccion; + end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.cbListaPropertiesValidate( + 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; +end; + +destructor TfrViewDireccionEntregaPedidoProv.Destroy; +begin + cbLista.Properties.OnValidate := Nil; + FAlmacenesController := Nil; + FAlmacenes := Nil; + FController := NIL; + inherited; +end; + +function TfrViewDireccionEntregaPedidoProv.GetPedidoProveedor: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +procedure TfrViewDireccionEntregaPedidoProv.RefrescarDireccion; +begin + txtDireccion.Caption := ''; + if Assigned(FPedido) then + begin + if (actOtro.Checked) then + begin + cbLista.Enabled := False; + cbLista.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 begin + txtDireccion.Enabled := False; + cbLista.Enabled := True; + cbLista.DroppedDown := True; + bModificar.Enabled := False; + end; + end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor( + const Value: IBizPedidoProveedor); +begin + cbLista.Properties.OnValidate := NIL; + dsPedido.DataTable := nil; + + FPedido := Value; + + dsPedido.DataTable := FPedido.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate; + + if (FPedido.EsNuevo) then + CambioDireccionAlmacen + else + if (FPedido.ID_ALMACEN < 1) then + actOtro.Checked := True; + + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick( + Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +end. 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 00000000..36f58094 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dfm @@ -0,0 +1,7 @@ +inherited frViewElegirArticulosPedidosProveedor: TfrViewElegirArticulosPedidosProveedor + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + 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 00000000..aa5e5ce6 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.pas @@ -0,0 +1,26 @@ +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid; + +type + IViewElegirArticulosPedidosProveedor = interface(IViewArticulos) + ['{5292A518-0797-4FFC-AC9B-90F0113AF3AF}'] + end; + + TfrViewElegirArticulosPedidosProveedor = class(TfrViewArticulos, IViewElegirArticulosPedidosProveedor) + end; + +implementation +{$R *.dfm} + +end. 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 00000000..fd609269 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm @@ -0,0 +1,474 @@ +inherited frViewPedidoProveedor: TfrViewPedidoProveedor + Width = 704 + Height = 467 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 704 + ExplicitHeight = 467 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 704 + Height = 467 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 704 + 467) + inline frViewProveedorPedido: TfrViewDatosYSeleccionProveedor + Left = 339 + Top = 28 + Width = 310 + Height = 215 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 10 + ReadOnly = False + ExplicitLeft = 339 + ExplicitTop = 28 + ExplicitWidth = 310 + ExplicitHeight = 215 + inherited dxLayoutControl1: TdxLayoutControl + Width = 310 + Height = 215 + Align = alClient + ExplicitWidth = 310 + ExplicitHeight = 215 + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 185 + Width = 185 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 46 + Width = 46 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 262 + ExplicitLeft = 262 + ExplicitWidth = 71 + Width = 71 + end + inherited Button3: TBitBtn + Left = 135 + ExplicitLeft = 135 + end + end + end + object edtFechaPedido: TcxDBDateEdit + Left = 137 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 127 + end + object edtFechaConfirmacion: TcxDBDateEdit + Left = 137 + Top = 195 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 63 + end + object edtFechaEntrega: TcxDBDateEdit + Left = 137 + Top = 222 + 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.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 55 + end + object memObservaciones: TcxDBMemo + Left = 339 + Top = 279 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Height = 133 + Width = 530 + end + object eReferencia: TcxDBTextEdit + Left = 137 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 143 + end + inline frViewDireccionEntregaPedidoProv1: TfrViewDireccionEntregaPedidoProv + Left = 22 + Top = 279 + Width = 445 + Height = 166 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 9 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 279 + ExplicitWidth = 445 + ExplicitHeight = 166 + inherited dxLayoutControl1: TdxLayoutControl + Width = 445 + Height = 166 + ExplicitWidth = 445 + ExplicitHeight = 166 + inherited rdxDestino1: TRadioButton + Width = 255 + ExplicitWidth = 255 + end + inherited rdxDestino2: TRadioButton + Width = 287 + ExplicitWidth = 287 + end + inherited cbLista: TcxDBLookupComboBox + ExplicitWidth = 112 + Width = 112 + end + inherited bModificar: TBitBtn + Left = 149 + Top = 131 + ExplicitLeft = 149 + ExplicitTop = 131 + end + end + inherited ActionList1: TActionList + Left = 32 + Top = 0 + end + inherited dsPedido: TDADataSource + Left = 0 + Top = 0 + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 137 + 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.ListSource = dsFormaPago + 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 = 2 + Width = 32 + end + object bFormasPago: TButton + Left = 177 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 3 + OnClick = bFormasPagoClick + end + object edtFechaEnvio: TcxDBDateEdit + Left = 137 + Top = 168 + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 195 + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 137 + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 78 + end + object Button1: TButton + Left = 177 + Top = 109 + Width = 132 + Height = 23 + Action = actVerPedidoCli + TabOrder = 5 + 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 + 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 = Button1 + ControlOptions.ShowBorder = False + end + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + 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 dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Direcci'#243'n de 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 + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'frViewDatosYSeleccionProveedor1' + ShowCaption = False + Control = frViewProveedorPedido + 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 = 24 + Top = 40 + end + object dsFormaPago: TDADataSource + Left = 56 + Top = 8 + end + object ActionList1: TActionList + Left = 24 + Top = 72 + 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 00000000..4776df9d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas @@ -0,0 +1,212 @@ +unit uViewPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosProveedor, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, uViewDatosYSeleccionProveedor, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaPedidoProv, cxLookupEdit, cxDBLookupEdit, uBizPedidosCliente, + uPedidosClienteController, cxDBLookupComboBox, uFormasPagoController, ActnList; + +type + IViewPedidoProveedor = interface(IViewBase) + ['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}'] + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + + function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; + procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); + property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido write SetViewProveedorPedido; + end; + + TfrViewPedidoProveedor = class(TfrViewBase, IViewPedidoProveedor) + DADataSource: TDADataSource; + frViewProveedorPedido: TfrViewDatosYSeleccionProveedor; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + 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; + Button1: TButton; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Group10: TdxLayoutGroup; + ActionList1: TActionList; + actVerPedidoCli: TAction; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure frViewProveedorPedidoButton1Click(Sender: TObject); + procedure frViewProveedorPedidoButton2Click(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure actVerPedidoCliExecute(Sender: TObject); + procedure actVerPedidoCliUpdate(Sender: TObject); + protected + FPedido : IBizPedidoProveedor; + FViewProveedorPedido : TfrViewDatosYSeleccionProveedor; + FFormasPagoController : IFormasPagoController; + FPedidoCliAsociado : IBizPedidoCliente; + FPedidoCliController : IPedidosClienteController; + + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); virtual; + function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; + procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); + + public + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPedidoProveedor } + +uses + uBizFormasPago; + + +procedure TfrViewPedidoProveedor.actVerPedidoCliExecute(Sender: TObject); +begin + inherited; + FPedidoCliController.Ver(FPedidoCliAsociado); +end; + +procedure TfrViewPedidoProveedor.actVerPedidoCliUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FPedidoCliAsociado) +end; + +procedure TfrViewPedidoProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewPedidoProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPagoController := TFormasPagoController.Create; + FViewProveedorPedido := frViewProveedorPedido; + FViewProveedorPedido.MsgElegirProveedor := 'Elija el proveedor al que se le realizará el pedido.'; + eReferencia.Enabled := False; + eReferenciaPedidoCli.Enabled := False; + FPedidoCliAsociado := NIL; + FPedidoCliController := TPedidosClienteController.Create; +end; + +procedure TfrViewPedidoProveedor.CustomViewDestroy(Sender: TObject); +begin + FViewProveedorPedido := Nil; + FFormasPagoController := NIL; + inherited; +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 eliminarán todos sus artículos del pedido actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorPedido.actElegirContacto.Execute; +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 eliminarán todos sus artículos del pedido actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorPedido.actElegirContacto.Execute; +end; + +function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +function TfrViewPedidoProveedor.GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; +begin + Result := FViewProveedorPedido; +end; + +procedure TfrViewPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); +begin + FPedido := Value; + + if Assigned(FPedido) then + begin + DADataSource.DataTable := FPedido.DataTable; + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.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'; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + FPedidoCliAsociado := NIL; + end; + + frViewProveedorPedido.Proveedor := FPedido.Proveedor; + frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido; +end; + +procedure TfrViewPedidoProveedor.SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); +begin + FViewProveedorPedido := Value; +end; + +end. 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 00000000..f4791c28 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm @@ -0,0 +1,355 @@ +inherited frViewPedidosProveedor: TfrViewPedidosProveedor + Width = 596 + Height = 479 + ExplicitWidth = 596 + ExplicitHeight = 479 + inherited cxGrid: TcxGrid + Width = 596 + Height = 351 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 596 + ExplicitHeight = 351 + 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> + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + IsCaptionAssigned = True + end + object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Con incidencias' + ImageIndex = 3 + Tag = 1 + Value = 1 + end> + Properties.LargeImages = PngImageList + Properties.ShowDescriptions = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 56 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + Width = 56 + end + object cxGridViewFECHA_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PEDIDO' + Width = 46 + end + object cxGridViewFECHA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENVIO' + Width = 57 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE' + Width = 58 + end + object cxGridViewFECHA_CONFIRMACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_CONFIRMACION' + Width = 57 + end + object cxGridViewFECHA_ENTREGA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENTREGA' + Width = 47 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Width = 48 + 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 + end + object cxGridViewREF_PED_CLIENTE: TcxGridDBColumn + Caption = 'Ref. pedido cli.' + DataBinding.FieldName = 'REF_PED_CLIENTE' + Width = 41 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 94 + 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 = 596 + ExplicitWidth = 596 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 592 + inherited txtFiltroTodo: TcxTextEdit + Left = 170 + ExplicitLeft = 170 + ExplicitWidth = 412 + Width = 412 + end + inherited edtFechaIniFiltro: TcxDateEdit + Left = 170 + ExplicitLeft = 170 + ExplicitWidth = 225 + Width = 225 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 391 + ExplicitLeft = 391 + ExplicitWidth = 203 + Width = 203 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del pedido entre la fecha:' + end + end + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 592 + ExplicitWidth = 592 + inherited tbxBotones: TTBXToolbar + Width = 582 + ExplicitWidth = 582 + end + 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 + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleParciales: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleRecibidos: TcxStyle + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 288 + 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 PngImageList10: TPngImageList + Left = 360 + Top = 440 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + 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/Pedidos a proveedor/Views/uViewPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas new file mode 100644 index 00000000..6e49e20b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas @@ -0,0 +1,231 @@ +unit uViewPedidosProveedor; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, + uBizPedidosProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList, + TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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; + PngImageList: TPngImageList; + cxGridViewCODIGO: TcxGridDBColumn; + 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; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var + ADone: Boolean); + 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); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FPedidos: IBizPedidoProveedor; + function GetPedidos: IBizPedidoProveedor; + procedure SetPedidos(const Value: IBizPedidoProveedor); + procedure AnadirOtrosFiltros; override; + + public + property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; + end; + +implementation + +uses SysUtils, variants, windows, uDataModulePedidosProveedor, schPedidosProveedorClient_Intf; + +{$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.cxGridViewCODIGOCustomDrawCell(Sender: + TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: + TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R: TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +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 := cxStylePendientes + else if (ASituacion = SITUACION_PEDIDO_PARCIAL) then + AStyle := cxStyleParciales + else if (ASituacion = SITUACION_PEDIDO_RECIBIDO) then + AStyle := cxStyleRecibidos; + 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 de cliente/Controller/PedidosCliente_controller.bdsproj b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.bdsproj new file mode 100644 index 00000000..f9c334e1 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + PedidosCliente_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 de cliente/Controller/PedidosCliente_controller.dpk b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.dpk new file mode 100644 index 00000000..842fe2f7 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.dpk @@ -0,0 +1,55 @@ +package PedidosCliente_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + GUIBase, + ControllerBase, + Contactos_controller, + dsnap, + vcldb, + adortl, + PedidosCliente_data, + PedidosCliente_model, + Articulos_controller; + +contains + uPedidosClienteController in 'uPedidosClienteController.pas', + uDetallesPedidoClienteController in 'uDetallesPedidoClienteController.pas', + uIEditorPedidosCliente in 'View\uIEditorPedidosCliente.pas', + uIEditorPedidoCliente in 'View\uIEditorPedidoCliente.pas', + uIEditorElegirPedidosCliente in 'View\uIEditorElegirPedidosCliente.pas', + uArticulosPedidoClienteController in 'uArticulosPedidoClienteController.pas', + uIEditorElegirArticulosPedidosCliente in 'View\uIEditorElegirArticulosPedidosCliente.pas', + uIEditorDireccionEntregaPedidoCliente in 'View\uIEditorDireccionEntregaPedidoCliente.pas', + uPedidosClienteReportController in 'uPedidosClienteReportController.pas', + uIEditorPedidosClientePreview in 'View\uIEditorPedidosClientePreview.pas'; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.rc b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.res b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.res differ diff --git a/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorDireccionEntregaPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorDireccionEntregaPedidoCliente.pas new file mode 100644 index 00000000..f30b0054 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorDireccionEntregaPedidoCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorDireccionEntregaPedidoCliente; + +interface + +uses + uBizPedidosCliente; + +type + IEditorDireccionEntregaPedidoCliente = interface + ['{9CF49F99-92A6-4E08-B518-EDBB3FBF0FB2}'] + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirArticulosPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirArticulosPedidosCliente.pas new file mode 100644 index 00000000..895dc7e6 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirArticulosPedidosCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosPedidosCliente; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosPedidosCliente = interface(IEditorElegirArticulos) + ['{549F3B97-46E2-4D40-8080-566065735FA0}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirPedidosCliente.pas new file mode 100644 index 00000000..f8a3282b --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorElegirPedidosCliente.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirPedidosCliente; + +interface + +uses + uIEditorPedidosCliente, uBizPedidosCliente, uGUIBase; + +type + IEditorElegirPedidosCliente = interface(IEditorPedidosCliente) + ['{FA60C50C-D927-4951-82C8-1C6628CF7BA5}'] + function GetPedidosClienteSeleccionados: IBizPedidoCliente; + property PedidosClienteSeleccionados: IBizPedidoCliente read GetPedidosClienteSeleccionados; + + 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 de cliente/Controller/View/uIEditorPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidoCliente.pas new file mode 100644 index 00000000..de2afbdc --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidoCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorPedidoCliente; + +interface + +uses + uEditorDBItem, uBizPedidosCliente, uPedidosClienteController; + +type + IEditorPedidoCliente = interface(IEditorDBItem) + ['{244C8E63-7BA2-4C8E-A2B8-4ECCEFDB5196}'] + function GetController : IPedidosClienteController; + procedure SetController (const Value : IPedidosClienteController); + property Controller : IPedidosClienteController read GetController + write SetController; + + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosCliente.pas new file mode 100644 index 00000000..c7914fbf --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorPedidosCliente; + +interface + +uses + uEditorGridBase, uBizPedidosCliente, uPedidosClienteController; + +type + IEditorPedidosCliente = interface(IEditorGridBase) + ['{9FBF3D67-D0B1-4C2F-A37F-58BCD2DB0561}'] + function GetPedidos: IBizPedidoCliente; + procedure SetPedidos(const Value: IBizPedidoCliente); + property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos; + + function GetController : IPedidosClienteController; + procedure SetController (const Value : IPedidosClienteController); + property Controller : IPedidosClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosClientePreview.pas b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosClientePreview.pas new file mode 100644 index 00000000..c3f9bb8b --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/View/uIEditorPedidosClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorPedidosClientePreview; + +interface + +uses + uEditorPreview; + +type + IEditorPedidosClientePreview = interface(IEditorPreview) + ['{B60B6013-32C0-4694-9676-F582A759CB48}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/uArticulosPedidoClienteController.pas b/Source/Modulos/Pedidos de cliente/Controller/uArticulosPedidoClienteController.pas new file mode 100644 index 00000000..15722c5b --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/uArticulosPedidoClienteController.pas @@ -0,0 +1,47 @@ +unit uArticulosPedidoClienteController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosPedidoClienteController = interface(IArticulosController) + ['{B334F1FC-65B7-4E77-8D1B-A7CF12F6CF3C}'] + end; + + TArticulosPedidoClienteController = class(TArticulosController, IArticulosPedidoClienteController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosPedidoClienteController } + +uses Controls, uIEditorElegirArticulosPedidosCliente, uIEditorElegirArticulos; + +function TArticulosPedidoClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosPedidosCliente; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosPedidosCliente', IEditorElegirArticulosPedidosCliente, AEditor); + try + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/uDetallesPedidoClienteController.pas b/Source/Modulos/Pedidos de cliente/Controller/uDetallesPedidoClienteController.pas new file mode 100644 index 00000000..b0ce1fee --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/uDetallesPedidoClienteController.pas @@ -0,0 +1,117 @@ + unit uDetallesPedidoClienteController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesPedidoCliente, uIDataModulePedidosCliente, + uBizArticulos, uBizContactos; + +type + IDetallesPedidoClienteController = interface(IControllerDetallesArticulos) + ['{8D1D3559-E695-4962-9999-404B26B50D6C}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + end; + + TDetallesPedidoClienteController = class(TControllerDetallesArticulos, IDetallesPedidoClienteController) + private + FDataModule : IDataModulePedidosCliente; + protected + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); reintroduce; overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Dialogs, Variants, uControllerDetallesBase, uControllerDetallesDTO, uDataModulePedidosCliente, uArticulosPedidoClienteController; + +{ TDetallesPedidoClienteController } + +procedure TDetallesPedidoClienteController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + ShowMessage('Se han actualizado los descuentos para el cliente seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesPedidoClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + AArticulos := (FArticulosController as IArticulosPedidoClienteController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este pedido de cliente', True); + Add(ADetalles, AArticulos); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesPedidoClienteController.AsignarController; +begin + FArticulosController := TArticulosPedidoClienteController.Create; +end; + +procedure TDetallesPedidoClienteController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesPedidoCliente) do + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_PEDIDO := IDCabecera; + Post + end; +end; + +constructor TDetallesPedidoClienteController.Create; +begin + inherited; + FDataModule := TDataModulePedidosCliente.Create(Nil); +end; + +destructor TDetallesPedidoClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesPedidoClienteController.RellenarDescuentos(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + RellenarDescuento(ADetalles, AArticulos.DESCUENTO) + else + RellenarDescuento(ADetalles, 0) +end; + +procedure TDetallesPedidoClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas new file mode 100644 index 00000000..4c0a4095 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas @@ -0,0 +1,723 @@ +unit uPedidosClienteController; + +interface + + +uses + SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModulePedidosCliente, uClientesController, + uDetallesPedidoClienteController, uBizPedidosCliente, uBizDireccionesContacto, + uBizDetallesPedidoCliente; + +type + IPedidosClienteController = interface(IObservador) + ['{21ED0332-F0E0-468D-8D53-8CA362757191}'] + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + property ClienteController: IClientesController read GetClienteController write SetClienteController; + + function GetDetallesController: IDetallesPedidoClienteController; + procedure SetDetallesController(const Value: IDetallesPedidoClienteController); + property DetallesController: IDetallesPedidoClienteController read GetDetallesController write SetDetallesController; + + procedure RecuperarCliente(APedido : IBizPedidoCliente); + function Buscar(const ID: Integer): IBizPedidoCliente; + function BuscarTodos: IBizPedidoCliente; + function BuscarPendientes : IBizPedidoCliente; + function BuscarPendientesPedir(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv; + procedure Ver(APedido : IBizPedidoCliente); + procedure VerTodos(APedidos: IBizPedidoCliente); + procedure VerDireccionEntrega(APedido : IBizPedidoCliente); + function Nuevo : IBizPedidoCliente; + function Anadir(APedido : IBizPedidoCliente) : Boolean; + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoCliente): Boolean; overload; + function Guardar(APedido : IBizPedidoCliente): Boolean; + procedure DescartarCambios(APedido : IBizPedidoCliente); + function Existe(const ID: Integer) : Boolean; + function Duplicar(APedido: IBizPedidoCliente): IBizPedidoCliente; + + function Localizar(APedidos: IBizPedidoCliente; const ID : Integer): Boolean; + function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente; + function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente; + + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + APedido: IBizPedidoCliente); + procedure QuitarDireccionEnvio(APedido: IBizPedidoCliente); + + procedure Preview(APedido : IBizPedidoCliente); + procedure Print(APedido : IBizPedidoCliente); + + function ArticulosPendientes(const ID : Integer): IBizPedidoClienteArticulosPend; + end; + + TPedidosClienteController = class(TObservador, IPedidosClienteController) + protected + FDataModule : IDataModulePedidosCliente; + FClienteController : IClientesController; + FDetallesController : IDetallesPedidoClienteController; + + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + function GetDetallesController: IDetallesPedidoClienteController; + procedure SetDetallesController(const Value: IDetallesPedidoClienteController); + + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(APedido: IBizPedidoCliente); virtual; + procedure AsignarEditor(out AEditor: IEditorDBItem); virtual; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + procedure AsignarID(APedido: IBizPedidoCliente; const IDNuevo : Integer); + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + procedure FiltrarEmpresa(APedido: IBizPedidoCliente); + function _Vacio : IBizPedidoCliente; + function ValidarPedido(APedido: IBizPedidoCliente): Boolean; + public + property ClienteController: IClientesController read GetClienteController write SetClienteController; + property DetallesController: IDetallesPedidoClienteController read GetDetallesController write SetDetallesController; + + constructor Create; virtual; + destructor Destroy; override; + + function Localizar(APedidos: IBizPedidoCliente; const ID : Integer): Boolean; + + procedure RecuperarCliente(APedido : IBizPedidoCliente); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoCliente): Boolean; overload; + function Guardar(APedido : IBizPedidoCliente): Boolean; + procedure DescartarCambios(APedido : IBizPedidoCliente); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(APedido : IBizPedidoCliente) : Boolean; + function Buscar(const ID: Integer): IBizPedidoCliente; + function BuscarTodos: IBizPedidoCliente; + function BuscarPendientes : IBizPedidoCliente; + function BuscarPendientesPedir(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv; + function Nuevo : IBizPedidoCliente; + procedure Ver(APedido : IBizPedidoCliente); + procedure VerTodos(APedidos: IBizPedidoCliente); + procedure VerDireccionEntrega(APedido : IBizPedidoCliente); + function Duplicar(APedido: IBizPedidoCliente): IBizPedidoCliente; + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + APedido: IBizPedidoCliente); + + procedure QuitarDireccionEnvio(APedido: IBizPedidoCliente); + function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente; + function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente; + + procedure Preview(APedido : IBizPedidoCliente); + procedure Print(APedido : IBizPedidoCliente); + + function ArticulosPendientes(const ID : Integer): IBizPedidoClienteArticulosPend; + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorPedidosCliente, uDataModulePedidosCliente, Variants, + uBizContactos, uDataTableUtils, uDataModuleUsuarios, + schPedidosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPedidoCliente, + uIEditorElegirPedidosCliente, uIEditorDireccionEntregaPedidoCliente, + schContactosClient_Intf, uPedidosClienteReportController; + +{ TPedidosClienteController } + +function TPedidosClienteController.Anadir(APedido: IBizPedidoCliente): Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (Anadir)'); + APedido.Insert; + Result := True; +end; + +function TPedidosClienteController.ArticulosPendientes( + const ID: Integer): IBizPedidoClienteArticulosPend; +begin + Result := FDataModule.GetArticulosPendientes(ID); +end; + +procedure TPedidosClienteController.AsignarDataModule; +begin + FDataModule := TDataModulePedidosCliente.Create(Nil); +end; + +procedure TPedidosClienteController.AsignarEditor(out AEditor: IEditorDBItem); +begin + CreateEditor('EditorPedidoCliente', IEditorPedidoCliente, AEditor); +end; + +procedure TPedidosClienteController.AsignarID(APedido: IBizPedidoCliente; const IDNuevo : Integer); +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado'); + + if not Assigned(APedido.Detalles) then + raise Exception.Create ('Detalles de pedido no asignados'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + { Los detalles siempre hay que comprobarlos } + FDetallesController.AsignarID(APedido.Detalles, IDNuevo, APedido.EsNuevo); + + if APedido.EsNuevo then + begin + APedido.Edit; + APedido.ID := IDNuevo; + APedido.Post; + end; +end; + +function TPedidosClienteController.Buscar(const ID: Integer): IBizPedidoCliente; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TPedidosClienteController.BuscarTodos: IBizPedidoCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TPedidosClienteController.BuscarPendientes: IBizPedidoCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_PedidosClienteSITUACION + ' <> ''' + SITUACION_PEDIDO_SERVIDO + ''''); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosClienteController.BuscarPendientesPedir( + const ID: Integer): IBizPedidoClienteArticulosPendientesPedirAProv; +begin + ShowHourglassCursor; + try + Result := FDataModule.GetArticulosPendientesPedirAProv(ID); + finally + HideHourglassCursor; + end; +end; + +procedure TPedidosClienteController.CopiarDireccionEnvio( + const ADireccionEnvio: IBizDireccionesContacto; APedido: IBizPedidoCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarDireccionEnvio)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la dirección (CopiarDireccionEnvio)'); + + if APedido.DataTable.Active then + APedido.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (APedido.DataTable.State in dsEditModes); + if not bEnEdicion then + APedido.Edit; + + ShowHourglassCursor; + APedido.Edit; + try + APedido.CALLE := ADireccionEnvio.CALLE; + APedido.POBLACION := ADireccionEnvio.POBLACION; + APedido.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + APedido.PROVINCIA := ADireccionEnvio.PROVINCIA; + APedido.TELEFONO := ADireccionEnvio.TELEFONO; + APedido.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + APedido.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TPedidosClienteController.Create; +begin + AsignarDataModule; + + FClienteController := TClientesController.Create; + FDetallesController := TDetallesPedidoClienteController.Create; + FDetallesController.addObservador(Self); +end; + +function TPedidosClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TPedidosClienteController.DescartarCambios(APedido: IBizPedidoCliente); +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignada'); + + ShowHourglassCursor; + try + if (APedido.State in dsEditModes) then + APedido.Cancel; + + APedido.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TPedidosClienteController.Destroy; +begin + FDataModule := Nil; + FClienteController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TPedidosClienteController.Duplicar( + APedido: IBizPedidoCliente): IBizPedidoCliente; +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 + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_PEDIDO := DateOf(Now); + FECHA_PREVISTA_ENVIO := 0; + INCIDENCIAS_ACTIVAS := 0; + INCIDENCIAS := Nil; + REFERENCIA := ''; + SetFieldNull(DataTable, fld_PedidosClienteREF_TIENDA_WEB); + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TPedidosClienteController.ValidarPedido( + APedido: IBizPedidoCliente): Boolean; +begin + Result := False; + + 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; + + // Abrir el cliente para la validación + if Assigned(APedido.Cliente) then + APedido.Cliente.DataTable.Active := True; + + if (APedido.ID_Cliente < 0) or + (not Assigned(APedido.Cliente)) or + (APedido.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de este pedido'); + + if (EsFechaVacia(APedido.FECHA_PEDIDO)) then + raise Exception.Create('Debe indicar la fecha de este pedido'); + + if (not EsFechaVacia(APedido.FECHA_PREVISTA_ENVIO)) then + begin + if (APedido.FECHA_PREVISTA_ENVIO < APedido.FECHA_PEDIDO) then + raise Exception.Create('La fecha prevista de envío no puede ser anterior a la fecha del pedido'); + end; + + if (APedido.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El pedido debe tener en su contenido al menos un concepto'); + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + APedido.Edit; + try + APedido.USUARIO := dmUsuarios.LoginInfo.Usuario; + + if Assigned(APedido.Cliente) + and (APedido.ID_CLIENTE <> APedido.Cliente.ID) then + APedido.ID_CLIENTE := APedido.Cliente.ID; + + Result := True; + finally + APedido.Post; + end; +end; + +procedure TPedidosClienteController.Ver(APedido: IBizPedidoCliente); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(APedido); + AsignarEditor(AEditor); + + with (AEditor as IEditorPedidoCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Pedido := APedido; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TPedidosClienteController.VerDireccionEntrega( + APedido: IBizPedidoCliente); +var + AEditor : IEditorDireccionEntregaPedidoCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + //RecuperarObjetos(APedido); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaPedidoCliente', IEditorDireccionEntregaPedidoCliente, AEditor); + + with (AEditor as IEditorDireccionEntregaPedidoCliente) do + begin + Pedido := APedido; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TPedidosClienteController.VerTodos(APedidos: IBizPedidoCliente); +var + AEditor : IEditorPedidosCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorPedidosCliente', IEditorPedidosCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Pedidos := APedidos; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +function TPedidosClienteController._Vacio: IBizPedidoCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TPedidosClienteController.Eliminar(const ID: Integer): Boolean; +var + APedido : IBizPedidoCliente; +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 TPedidosClienteController.ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente; +var + AEditor : IEditorElegirPedidosCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirPedidosCliente', IEditorElegirPedidosCliente, AEditor); + try + with AEditor do + begin + Controller := Self; + Pedidos := APedido; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := PedidosClienteSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TPedidosClienteController.Eliminar(APedido: IBizPedidoCliente): Boolean; +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado'); + + if APedido.DataTable.Active then + APedido.DataTable.Active := True; + + if APedido.SITUACION <> SITUACION_PEDIDO_PENDIENTE then + raise Exception.Create('No se puede eliminar este pedido porque está ' + APedido.SITUACION); + + ShowHourglassCursor; + try + if (APedido.State in dsEditModes) then + APedido.Cancel; + + APedido.Delete; + APedido.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; +end; +procedure TPedidosClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + APedido : IBizPedidoCliente; + ADetalles : IBizDetallesPedidoCliente; +begin + inherited; + + if Supports(ADataTable, IBizDetallesPedidoCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizPedidoCliente, APedido) then + begin + APedido.Edit; + try + APedido.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + APedido.Post; + end; + end; +end; + +procedure TPedidosClienteController.RecuperarObjetos(APedido: IBizPedidoCliente); +begin + RecuperarCliente(APedido); +end; + +procedure TPedidosClienteController.RecuperarCliente( + APedido: IBizPedidoCliente); +begin + APedido._Cliente := (FClienteController.Buscar(APedido.ID_Cliente) as IBizCliente); +end; + +function TPedidosClienteController.Existe(const ID: Integer): Boolean; +var + APedido : IBizPedidoCliente; +begin + try + APedido := Buscar(ID); + Result := Assigned(APedido) and (APedido.ID = ID); + finally + APedido := NIL; + end; +end; + +function TPedidosClienteController.ExtraerSeleccionados(APedido: IBizPedidoCliente): IBizPedidoCliente; +var + ASeleccionados : IBizPedidoCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizPedidoCliente); + CopyDataTable(APedido.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TPedidosClienteController.FiltrarEmpresa( + APedido: IBizPedidoCliente); +begin + if APedido.DataTable.Active then + APedido.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with APedido.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + AddCondition(fld_PedidosClienteID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + end; +end; + +procedure TPedidosClienteController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TPedidosClienteController.SetDetallesController(const Value: IDetallesPedidoClienteController); +begin + FDetallesController := Value; +end; + +function TPedidosClienteController.Guardar(APedido: IBizPedidoCliente): Boolean; +var + IDNuevo: Integer; +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; + try + if (APedido.EsNuevo) then + IDNuevo := FDataModule.GetNextID(APedido.DataTable.LogicalName) + else + IDNuevo := APedido.ID; + + AsignarID(APedido, IDNuevo); + APedido.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TPedidosClienteController.Localizar(APedidos: IBizPedidoCliente; + const ID: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with APedidos.DataTable do + begin + DisableControls; + First; + if not Locate(fld_PedidosClienteID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosClienteController.Nuevo: IBizPedidoCliente; +var + APedido : IBizPedidoCliente; +begin + APedido := FDataModule.NewItem; + FiltrarEmpresa(APedido); + APedido.DataTable.Active := True; + APedido.Insert; + Result := APedido; +end; + +procedure TPedidosClienteController.QuitarDireccionEnvio( + APedido: IBizPedidoCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (QuitarDireccionEnvio)'); + + if APedido.DataTable.Active then + APedido.DataTable.Active := True; + + bEnEdicion := (APedido.DataTable.State in dsEditModes); + if not bEnEdicion then + APedido.Edit; + + ShowHourglassCursor; + APedido.Edit; + try + APedido.DataTable.FieldByName(fld_PedidosClienteCALLE).Clear; + APedido.DataTable.FieldByName(fld_PedidosClientePOBLACION).Clear; + APedido.DataTable.FieldByName(fld_PedidosClienteCODIGO_POSTAL).Clear; + APedido.DataTable.FieldByName(fld_PedidosClientePROVINCIA).Clear; + APedido.DataTable.FieldByName(fld_PedidosClienteTELEFONO).Clear; + APedido.DataTable.FieldByName(fld_PedidosClientePERSONA_CONTACTO).Clear; + + if not bEnEdicion then + APedido.Post; + finally + HideHourglassCursor; + end; +end; + +procedure TPedidosClienteController.Preview(APedido: IBizPedidoCliente); +var + AReportController : IPedidosClienteReportController; +begin + AReportController := TPedidosClienteReportController.Create; + try + AReportController.Preview(APedido.ID); + finally + AReportController := NIL; + end; +end; + +procedure TPedidosClienteController.Print(APedido: IBizPedidoCliente); +var + AReportController : IPedidosClienteReportController; +begin + AReportController := TPedidosClienteReportController.Create; + try + AReportController.Print(APedido.ID); + finally + AReportController := NIL; + end; +end; + +function TPedidosClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TPedidosClienteController.GetDetallesController: IDetallesPedidoClienteController; +begin + Result := FDetallesController; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteReportController.pas b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteReportController.pas new file mode 100644 index 00000000..d6b374f6 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteReportController.pas @@ -0,0 +1,104 @@ +unit uPedidosClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePedidosClienteReport, + uClientesController, uPedidosClienteController, uDetallesPedidoClienteController, + uBizPedidosCliente; + +type + IPedidosClienteReportController = interface + ['{D0686358-251C-43C4-9927-6112F2F4D3B8}'] + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + TPedidosClienteReportController = class(TInterfacedObject, IPedidosClienteReportController) + private + FDataModule : IDataModulePedidosClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AID : integer); + procedure Print(const AID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorPedidosClientePreview, + uEditorPreview, uDataModulePedidosCliente, uEditorBase, cxControls; + +{ TPedidosClienteReportController } + +constructor TPedidosClienteReportController.Create; +begin + FDataModule := TDataModulePedidosCliente.Create(Nil); +end; + +function TPedidosClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TPedidosClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TPedidosClienteReportController.Preview(const AID : integer); +var + AStream: Binary; + AEditor : IEditorPedidosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorPedidosClientePreview', IEditorPedidosClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TPedidosClienteReportController.Print(const AID : integer); +var + AStream: Binary; + AEditor : IEditorPedidosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorPedidosClientePreview', IEditorPedidosClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.bdsproj b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.bdsproj new file mode 100644 index 00000000..30ba4394 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + PedidosCliente_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 de cliente/Data/PedidosCliente_data.dpk b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.dpk new file mode 100644 index 00000000..32c056df --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.dpk @@ -0,0 +1,33 @@ +package PedidosCliente_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 + PedidosCliente_model; + +contains + uDataModulePedidosCliente in 'uDataModulePedidosCliente.pas' {DataModulePedidosCliente}; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.rc b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.res b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.res differ diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm new file mode 100644 index 00000000..9eaf4c0f --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm @@ -0,0 +1,1186 @@ +object DataModulePedidosCliente: TDataModulePedidosCliente + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 377 + Width = 649 + object ROChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 40 + Top = 8 + end + object ROMessage: TROBinMessage + Left = 40 + Top = 60 + end + object RORemoteService: TRORemoteService + ServiceName = 'srvPedidosCliente' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 112 + end + object DABinAdapter: TDABINAdapter + Left = 40 + Top = 168 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 40 + Top = 240 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROMessage + Channel = ROChannel + Left = 40 + Top = 296 + end + object tbl_PedidosCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del cliente' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha pedido' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha prevista de env'#237'o' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosCliente' + IndexDefs = <> + Left = 208 + Top = 104 + end + object ds_PedidosCliente: TDADataSource + DataTable = tbl_PedidosCliente + Left = 208 + Top = 48 + end + object tbl_PedidosCliente_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID_PEDIDO=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente_Detalles' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente_Detalles' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidosCliente_Detalles' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_PedidosCliente + MasterFields = 'ID' + DetailFields = 'ID_PEDIDO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosCliente_Detalles' + IndexDefs = <> + Left = 329 + Top = 104 + end + object ds_PedidosCliente_Detalles: TDADataSource + DataTable = tbl_PedidosCliente_Detalles + Left = 329 + Top = 48 + end + object tbl_PedidoCliente_Articulos_Pendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_ID_ARTICULO' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_PED' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad en pedido' + Alignment = taRightJustify + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PED' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_ALB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad en albaranes' + Alignment = taRightJustify + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_ALB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_PENDIENTE' + DataType = datLargeInt + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad pendiente' + Alignment = taRightJustify + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PENDIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '11' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_Articulos_Pendientes' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_Articulos_Pendientes' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_Articulos_Pendientes' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidoCliente_Articulos_Pendientes' + IndexDefs = <> + Left = 208 + Top = 192 + end + object ds_PedidoCliente_Articulos_Pendientes: TDADataSource + DataTable = tbl_PedidoCliente_Articulos_Pendientes + Left = 208 + Top = 256 + end + object tbl_PedidoCliente_ArticulosPendientesPedirAProv: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_PEDIDO' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PEDIDA_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pedida por cliente' + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PEDIDA_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pedida a proveedor' + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PENDIENTE_PEDIR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pendiente pedir' + Alignment = taLeftJustify + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PENDIENTE_PEDIR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID_PEDIDO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_ArticulosPendientesPedirAProv' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_ArticulosPendientesPedirAProv' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PedidoCliente_ArticulosPendientesPedirAProv' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidoCliente_ArticulosPendientesPedirAProv' + IndexDefs = <> + Left = 440 + Top = 192 + end + object ds_PedidoCliente_ArticulosPendientesPedirAProv: TDADataSource + DataTable = tbl_PedidoCliente_ArticulosPendientesPedirAProv + Left = 440 + Top = 256 + end +end diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas new file mode 100644 index 00000000..ebc99d97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas @@ -0,0 +1,200 @@ +unit uDataModulePedidosCliente; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + + uDAClientDataModule, uROTypes, + uIDataModulePedidosCliente, uBizPedidosCliente, uBizDetallesPedidoCliente, + uIDataModulePedidosClienteReport; + +type + TDataModulePedidosCliente = class(TDAClientDataModule, IDataModulePedidosCliente, IDataModulePedidosClienteReport) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + tbl_PedidosCliente: TDACDSDataTable; + ds_PedidosCliente: TDADataSource; + tbl_PedidosCliente_Detalles: TDACDSDataTable; + ds_PedidosCliente_Detalles: TDADataSource; + tbl_PedidoCliente_Articulos_Pendientes: TDACDSDataTable; + ds_PedidoCliente_Articulos_Pendientes: TDADataSource; + tbl_PedidoCliente_ArticulosPendientesPedirAProv: TDACDSDataTable; + ds_PedidoCliente_ArticulosPendientesPedirAProv: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetDetalles : IBizDetallesPedidoCliente; + + protected + procedure AsignarClaseNegocio(var APedido: TDACDSDataTable); virtual; + + public + function GetArticulosPendientesPedirAProv(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv; + function GetArticulosPendientes(const IDPedido: Integer): IBizPedidoClienteArticulosPend; + function GetItems : IBizPedidoCliente; virtual; + function GetItem(const ID : Integer) : IBizPedidoCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizPedidoCliente; + + // Report + function GetReport(const AID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDAInterfaces, uDataModuleConexion, + uDataTableUtils, schPedidosClienteClient_Intf, uBizContactos; + +{ TdmPedidosCliente } + +procedure TDataModulePedidosCliente.AsignarClaseNegocio(var APedido: TDACDSDataTable); +begin + APedido.BusinessRulesID := BIZ_CLIENT_PEDIDO_CLIENTE; +end; + +procedure TDataModulePedidosCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModulePedidosCliente.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + if DataSetName = nme_PedidosCliente then + aGeneratorName := 'GEN_PEDIDOS_CLI_ID'; + + if DataSetName = nme_PedidosCliente_Detalles then + aGeneratorName := 'GEN_PEDIDOS_CLI_DETALLES_ID'; + + Result := (RORemoteService as IsrvPedidosCliente).GetNextAutoInc(aGeneratorName) +end; + +function TDataModulePedidosCliente.GetReport(const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvPedidosCliente).GenerateReport(AID) +end; + +function TDataModulePedidosCliente.NewItem: IBizPedidoCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModulePedidosCliente._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModulePedidosCliente._GetDetalles: IBizDetallesPedidoCliente; +var + ADetalles : TDACDSDataTable; +begin + ShowHourglassCursor; + try + ADetalles := _CloneDataTable(tbl_PedidosCliente_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_PEDIDO_CLIENTE; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesPedidoCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosCliente.GetArticulosPendientes( + const IDPedido: Integer): IBizPedidoClienteArticulosPend; +var + AArticulos : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AArticulos := _CloneDataTable(tbl_PedidoCliente_Articulos_Pendientes); + AArticulos.BusinessRulesID := BIZ_CLIENT_ARTICULOS_PEND_PEDIDO_CLIENTE; + AArticulos.ParamByName('ID_PEDIDO').AsInteger := IDPedido; + Result := (AArticulos as IBizPedidoClienteArticulosPend); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosCliente.GetArticulosPendientesPedirAProv( + const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv; +var + AArticulos : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AArticulos := _CloneDataTable(tbl_PedidoCliente_ArticulosPendientesPedirAProv); + AArticulos.BusinessRulesID := BIZ_CLIENT_PEDIDO_CLIENTE_ARTICULOS_PENDIENTES_PEDIR_A_PROV; + AArticulos.ParamByName('ID_PEDIDO').AsInteger := IDPedido; + Result := (AArticulos as IBizPedidoClienteArticulosPendientesPedirAProv); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosCliente.GetItem(const ID: Integer): IBizPedidoCliente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_PedidosClienteID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosCliente.GetItems: IBizPedidoCliente; +var + APedido : TDACDSDataTable; +begin + ShowHourglassCursor; + try + APedido := _CloneDataTable(tbl_PedidosCliente); + + // EL CAMPO REFERENCIA Y SITUACIÓN TIENEN QUE SER AUTOREFRESH!!!!! + APedido.FieldByName(fld_PedidosClienteREFERENCIA).ServerAutoRefresh := TRUE; + APedido.FieldByName(fld_PedidosClienteSITUACION).ServerAutoRefresh := TRUE; + + AsignarClaseNegocio(APedido); + + with TBizPedidoCliente(APedido.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (APedido as IBizPedidoCliente); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas new file mode 100644 index 00000000..2d5bd0c5 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas @@ -0,0 +1,21 @@ +unit uIDataModulePedidosCliente; + +interface + +uses + uBizPedidosCliente, uBizDetallesPedidoCliente; + +type + IDataModulePedidosCliente = interface + ['{F0DDD126-9E62-4FEC-A849-FDCA75718F5B}'] + function GetItems: IBizPedidoCliente; + function GetItem(const ID : Integer) : IBizPedidoCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizPedidoCliente; + function GetArticulosPendientes(const IDPedido: Integer): IBizPedidoClienteArticulosPend; + function GetArticulosPendientesPedirAProv(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosClienteReport.pas b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosClienteReport.pas new file mode 100644 index 00000000..fe6c88ea --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModulePedidosClienteReport; + +interface + +uses + uROTypes; + +type + IDataModulePedidosClienteReport = interface + ['{70CEBB06-376F-4363-B80F-DDA4324E0F85}'] + function GetReport(const AID: Integer): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosCliente_model.prjconfig b/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosCliente_model.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosCliente_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosProveedor_model.prjconfig b/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosProveedor_model.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/PedidosProveedor_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/default.txaPackage b/Source/Modulos/Pedidos de cliente/Model/ModelSupport_PedidosCliente_model/default.txaPackage new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.bdsproj b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.bdsproj new file mode 100644 index 00000000..85b39309 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + PedidosCliente_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 de cliente/Model/PedidosCliente_model.dpk b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.dpk new file mode 100644 index 00000000..29c77ca5 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.dpk @@ -0,0 +1,50 @@ +package PedidosCliente_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} +{%TogetherDiagram 'ModelSupport_PedidosCliente_model\default.txaPackage'} + +requires + DataAbstract_D10, + Base, + Usuarios, + Empresas_controller, + Contactos_model, + GUIBase, + rtl, + dbrtl, + vcl, + dsnap, + vcldb, + adortl; + +contains + uIDataModulePedidosCliente in 'Data\uIDataModulePedidosCliente.pas', + uBizDetallesPedidoCliente in 'uBizDetallesPedidoCliente.pas', + uBizPedidosCliente in 'uBizPedidosCliente.pas', + uIDataModulePedidosClienteReport in 'Data\uIDataModulePedidosClienteReport.pas', + schPedidosClienteClient_Intf in 'schPedidosClienteClient_Intf.pas', + schPedidosClienteServer_Intf in 'schPedidosClienteServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.rc b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.res b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.res differ diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daConnections b/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daConnections new file mode 100644 index 00000000..6b58eeff --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daConnections @@ -0,0 +1 @@ +IBX?Server=LOCALHOST;Database=E:\Codigo\BD\FACTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;Charset=ISO8859_1;TrueIBX010pbWaitTrue6001 diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daSchema b/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daSchema new file mode 100644 index 00000000..7ea17eb2 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosCliente.daSchema @@ -0,0 +1,70 @@ +Insert_PedidosClientedabtUnknowndatStringUSUARIOdaptInput20dabtUnknowndatMemoOBSERVACIONESdaptInput0dabtUnknowndatStringREFERENCIAdaptInput255dabtUnknowndatIntegerIDdaptInput0dabtUnknowndatIntegerID_EMPRESAdaptInput0dabtUnknowndatStringSITUACIONdaptInput255dabtUnknowndatDateTimeFECHA_ALTAdaptInput0dabtUnknowndatDateTimeFECHA_MODIFICACIONdaptInput0dabtUnknowndatDateTimeFECHA_PEDIDOdaptInput0dabtUnknowndatDateTimeFECHA_CONFIRMACIONdaptInput0dabtUnknowndatDateTimeFECHA_ENTREGAdaptInput0dabtUnknowndatMemoINCIDENCIASdaptInput0dabtUnknowndatFloatIMPORTE_TOTALdaptInput0dabtUnknowndatIntegerINCIDENCIAS_ACTIVASdaptInput0dabtUnknowndatIntegerID_CLIENTEdaptInput0dabtUnknowndatStringCALLEdaptInput255dabtUnknowndatStringCODIGO_POSTALdaptInput10dabtUnknowndatStringPOBLACIONdaptInput255dabtUnknowndatStringPROVINCIAdaptInput255dabtUnknowndatStringPERSONA_CONTACTOdaptInput255dabtUnknowndatStringTELEFONOdaptInput25IBXINSERT + INTO PEDIDOS_CLIENTE + (USUARIO, OBSERVACIONES, REFERENCIA, ID, ID_EMPRESA, + SITUACION, FECHA_ALTA, FECHA_MODIFICACION, FECHA_PEDIDO, + FECHA_CONFIRMACION, FECHA_ENTREGA, INCIDENCIAS, IMPORTE_TOTAL, + INCIDENCIAS_ACTIVAS, ID_CLIENTE, CALLE, CODIGO_POSTAL, + POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO) + VALUES + (:USUARIO, :OBSERVACIONES, :REFERENCIA, :ID, + :ID_EMPRESA, :SITUACION, :FECHA_ALTA, :FECHA_MODIFICACION, + :FECHA_PEDIDO, :FECHA_CONFIRMACION, :FECHA_ENTREGA, + :INCIDENCIAS, :IMPORTE_TOTAL, :INCIDENCIAS_ACTIVAS, + :ID_CLIENTE, :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, + :PERSONA_CONTACTO, :TELEFONO)stSQLPEDIDOS_CLIENTEDelete_PedidosClientedabtUnknowndatIntegerOLD_IDdaptInput0IBXDELETE + FROM + PEDIDOS_CLIENTE + WHERE + (ID = :OLD_ID)stSQLPEDIDOS_CLIENTEUpdate_PedidosClientedabtUnknowndatStringUSUARIOdaptInput20dabtUnknowndatMemoOBSERVACIONESdaptInput0dabtUnknowndatStringREFERENCIAdaptInput255dabtUnknowndatIntegerIDdaptInput0dabtUnknowndatIntegerID_EMPRESAdaptInput0dabtUnknowndatStringSITUACIONdaptInput255dabtUnknowndatDateTimeFECHA_ALTAdaptInput0dabtUnknowndatDateTimeFECHA_MODIFICACIONdaptInput0dabtUnknowndatDateTimeFECHA_PEDIDOdaptInput0dabtUnknowndatDateTimeFECHA_CONFIRMACIONdaptInput0dabtUnknowndatDateTimeFECHA_ENTREGAdaptInput0dabtUnknowndatMemoINCIDENCIASdaptInput0dabtUnknowndatFloatIMPORTE_TOTALdaptInput0dabtUnknowndatIntegerINCIDENCIAS_ACTIVASdaptInput0dabtUnknowndatIntegerID_CLIENTEdaptInput0dabtUnknowndatStringCALLEdaptInput255dabtUnknowndatStringCODIGO_POSTALdaptInput10dabtUnknowndatStringPOBLACIONdaptInput255dabtUnknowndatStringPROVINCIAdaptInput255dabtUnknowndatStringPERSONA_CONTACTOdaptInput255dabtUnknowndatStringTELEFONOdaptInput25dabtUnknowndatIntegerOLD_IDdaptInput0IBXUPDATE PEDIDOS_CLIENTE + SET + USUARIO = :USUARIO, + OBSERVACIONES = :OBSERVACIONES, + REFERENCIA = :REFERENCIA, + ID = :ID, + ID_EMPRESA = :ID_EMPRESA, + SITUACION = :SITUACION, + FECHA_ALTA = :FECHA_ALTA, + FECHA_MODIFICACION = :FECHA_MODIFICACION, + FECHA_PEDIDO = :FECHA_PEDIDO, + FECHA_CONFIRMACION = :FECHA_CONFIRMACION, + FECHA_ENTREGA = :FECHA_ENTREGA, + INCIDENCIAS = :INCIDENCIAS, + IMPORTE_TOTAL = :IMPORTE_TOTAL, + INCIDENCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS, + ID_CLIENTE = :ID_CLIENTE, + CALLE = :CALLE, + CODIGO_POSTAL = :CODIGO_POSTAL, + POBLACION = :POBLACION, + PROVINCIA = :PROVINCIA, + PERSONA_CONTACTO = :PERSONA_CONTACTO, + TELEFONO = :TELEFONO + WHERE + (ID = :OLD_ID)stSQLPEDIDOS_CLIENTETrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_IDID0TrueTrueFalseFalseIDFalseTrueFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_ID_EMPRESAID_EMPRESA0FalseTrueFalseFalseID_EMPRESAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_ID_CLIENTEID_CLIENTE0FalseTrueFalseFalseID_CLIENTEFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUSUARIOUSUARIO0FalseTrueFalseFalseUSUARIOFalseFalseFalse100TruetaLeftJustifydabtUnknownFalsedatDateTimePedidosCliente_FECHA_PEDIDOFECHA_PEDIDO0FalseTrueFalseFalseFECHA_PEDIDOFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimePedidosCliente_FECHA_CONFIRMACIONFECHA_CONFIRMACION0FalseTrueFalseFalseFECHA_CONFIRMACIONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimePedidosCliente_FECHA_ENTREGAFECHA_ENTREGA0FalseTrueFalseFalseFECHA_ENTREGAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_SITUACIONSITUACION0FalseTrueFalseFalseSITUACIONFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_CALLECALLE0FalseTrueFalseFalseCALLEFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_CODIGO_POSTALCODIGO_POSTAL0FalseTrueFalseFalseCODIGO_POSTALFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_POBLACIONPOBLACION0FalseTrueFalseFalsePOBLACIONFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_PROVINCIAPROVINCIA0FalseTrueFalseFalsePROVINCIAFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_PERSONA_CONTACTOPERSONA_CONTACTO0FalseTrueFalseFalsePERSONA_CONTACTOFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_TELEFONOTELEFONO0FalseTrueFalseFalseTELEFONOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_Detalles_REFERENCIAREFERENCIA0FalseTrueFalseFalseREFERENCIAFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatFloatPedidosCliente_IMPORTE_TOTALIMPORTE_TOTAL0FalseTrueFalseFalseIMPORTE_TOTALFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatMemoPedidosCliente_INCIDENCIASINCIDENCIAS0FalseTrueFalseFalseINCIDENCIASFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_INCIDENCIAS_ACTIVASINCIDENCIAS_ACTIVAS0FalseTrueFalseFalseINCIDENCIAS_ACTIVASFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatMemoOBSERVACIONESOBSERVACIONES0FalseTrueFalseFalseOBSERVACIONESFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringNOMBRENOMBRE0FalseTrueFalseFalseNOMBREFalseFalseFalse100TruetaLeftJustifydabtUnknownFalsedatDateTimePedidosCliente_FECHA_ALTAFECHA_ALTA0FalseTrueFalseFalseFECHA_ALTAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimePedidosCliente_FECHA_MODIFICACIONFECHA_MODIFICACION0FalseTrueFalseFalseFECHA_MODIFICACIONFalseFalseFalse0TruePedidosClienteIDIDIDID_EMPRESAID_EMPRESAID_EMPRESAID_CLIENTEID_CLIENTEID_CLIENTEUSUARIOUSUARIOUSUARIOFECHA_PEDIDOFECHA_PEDIDOFECHA_PEDIDOFECHA_CONFIRMACIONFECHA_CONFIRMACIONFECHA_CONFIRMACIONFECHA_ENTREGAFECHA_ENTREGAFECHA_ENTREGASITUACIONSITUACIONSITUACIONCALLECALLECALLECODIGO_POSTALCODIGO_POSTALCODIGO_POSTALPOBLACIONPOBLACIONPOBLACIONPROVINCIAPROVINCIAPROVINCIAPERSONA_CONTACTOPERSONA_CONTACTOPERSONA_CONTACTOTELEFONOTELEFONOTELEFONOREFERENCIAREFERENCIAREFERENCIAIMPORTE_TOTALIMPORTE_TOTALIMPORTE_TOTALINCIDENCIASINCIDENCIASINCIDENCIASINCIDENCIAS_ACTIVASINCIDENCIAS_ACTIVASINCIDENCIAS_ACTIVASOBSERVACIONESOBSERVACIONESOBSERVACIONESNOMBRENOMBRENOMBREFECHA_ALTAFECHA_ALTAFECHA_ALTAFECHA_MODIFICACIONFECHA_MODIFICACIONFECHA_MODIFICACIONIBXSELECT + PEDIDOS_CLIENTE.ID, PEDIDOS_CLIENTE.ID_EMPRESA, PEDIDOS_CLIENTE.ID_CLIENTE, + PEDIDOS_CLIENTE.REFERENCIA, PEDIDOS_CLIENTE.FECHA_PEDIDO, PEDIDOS_CLIENTE.FECHA_CONFIRMACION, + PEDIDOS_CLIENTE.FECHA_ENTREGA, PEDIDOS_CLIENTE.SITUACION, PEDIDOS_CLIENTE.CALLE, + PEDIDOS_CLIENTE.CODIGO_POSTAL, PEDIDOS_CLIENTE.POBLACION, PEDIDOS_CLIENTE.PROVINCIA, + PEDIDOS_CLIENTE.PERSONA_CONTACTO, PEDIDOS_CLIENTE.TELEFONO, PEDIDOS_CLIENTE.OBSERVACIONES, + PEDIDOS_CLIENTE.IMPORTE_TOTAL, PEDIDOS_CLIENTE.INCIDENCIAS, PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PEDIDOS_CLIENTE.FECHA_ALTA, PEDIDOS_CLIENTE.FECHA_MODIFICACION, PEDIDOS_CLIENTE.USUARIO, + CONTACTOS.NOMBRE + +FROM PEDIDOS_CLIENTE +LEFT JOIN CONTACTOS ON PEDIDOS_CLIENTE.ID_CLIENTE = CONTACTOS.IDstSQLPEDIDOS_CLIENTETrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_Detalles_IDID0TrueTrueFalseFalseIDFalseTrueFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_Detalles_ID_PEDIDOID_PEDIDO0FalseTrueFalseFalseID_PEDIDOFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPOSICIONCONCEPTOPOSICION0FalseTrueFalseFalsePOSICIONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_Detalles_TIPO_DETALLETIPO_DETALLE0FalseTrueFalseFalseTIPO_DETALLEFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_Detalles_REFERENCIAREFERENCIA0FalseTrueFalseFalseREFERENCIAFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_Detalles_ID_ARTICULOID_ARTICULO0FalseTrueFalseFalseID_ARTICULOFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_Detalles_CONCEPTOCONCEPTO0FalseTrueFalseFalseCONCEPTOFalseFalseFalse2000TruetaLeftJustifydabtUnknownFalsedatIntegerCANTIDADCANTIDAD0FalseTrueFalseFalseCANTIDADFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPedidosCliente_Detalles_IMPORTE_UNIDADIMPORTE_UNIDAD0FalseTrueFalseFalseIMPORTE_UNIDADFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPedidosCliente_Detalles_IMPORTE_TOTALIMPORTE_TOTAL0FalseTrueFalseFalseIMPORTE_TOTALFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerPedidosCliente_Detalles_VISIBLEVISIBLE0FalseTrueFalseFalseVISIBLEFalseFalseFalse0TruePedidosCliente_DetallesdabtUnknowndatIntegerID_PEDIDOdaptInput0CANTIDADCANTIDADCANTIDADPOSICIONPOSICIONPOSICIONIDIDIDTIPO_DETALLETIPO_DETALLETIPO_DETALLECONCEPTOCONCEPTOCONCEPTOIMPORTE_UNIDADIMPORTE_UNIDADIMPORTE_UNIDADIMPORTE_TOTALIMPORTE_TOTALIMPORTE_TOTALVISIBLEVISIBLEVISIBLEID_PEDIDOID_PEDIDOID_PEDIDOREFERENCIAREFERENCIAREFERENCIAID_ARTICULOID_ARTICULOID_ARTICULOIBXSELECT + ID, ID_PEDIDO, POSICION, TIPO_DETALLE, REFERENCIA, ID_ARTICULO, CONCEPTO, + CANTIDAD, IMPORTE_UNIDAD, IMPORTE_TOTAL, VISIBLE +FROM PEDIDOS_CLIENTE_DETALLES +WHERE ID_PEDIDO = :ID_PEDIDO +ORDER BY POSICION;stSQLPEDIDOS_CLIENTE_DETALLESTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatIntegerID0TrueTrueFalseFalseIDFalseTrueFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerID_EMPRESA0FalseTrueFalseFalseID_EMPRESAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerID_CLIENTE0FalseTrueFalseFalseID_CLIENTEFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUSUARIOUSUARIO0FalseTrueFalseFalseUSUARIOFalseFalseFalse100TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA_PEDIDO0FalseTrueFalseFalseFECHA_PEDIDOFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA_CONFIRMACION0FalseTrueFalseFalseFECHA_CONFIRMACIONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA_ENTREGA0FalseTrueFalseFalseFECHA_ENTREGAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringSITUACION0FalseTrueFalseFalseSITUACIONFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringCALLE0FalseTrueFalseFalseCALLEFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringCODIGO_POSTAL0FalseTrueFalseFalseCODIGO_POSTALFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatStringPOBLACION0FalseTrueFalseFalsePOBLACIONFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPROVINCIA0FalseTrueFalseFalsePROVINCIAFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringPERSONA_CONTACTO0FalseTrueFalseFalsePERSONA_CONTACTOFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatStringTELEFONO0FalseTrueFalseFalseTELEFONOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringPedidosCliente_Detalles_REFERENCIAREFERENCIA0FalseTrueFalseFalseREFERENCIAFalseFalseFalse255TruetaLeftJustifydabtUnknownFalsedatFloatIMPORTE_TOTAL0FalseTrueFalseFalseIMPORTE_TOTALFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatMemoINCIDENCIAS0FalseTrueFalseFalseINCIDENCIASFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatIntegerINCIDENCIAS_ACTIVAS0FalseTrueFalseFalseINCIDENCIAS_ACTIVASFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatMemoOBSERVACIONESOBSERVACIONES0FalseTrueFalseFalseOBSERVACIONESFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringNOMBRENOMBRE0FalseTrueFalseFalseNOMBREFalseFalseFalse100TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA_ALTA0FalseTrueFalseFalseFECHA_ALTAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA_MODIFICACION0FalseTrueFalseFalseFECHA_MODIFICACIONFalseFalseFalse0TruePedidosCliente_Refresh41dabtUnknowndatIntegerIDdaptInput041USUARIOUSUARIOUSUARIOOBSERVACIONESOBSERVACIONESOBSERVACIONESNOMBRENOMBRENOMBREREFERENCIAREFERENCIAREFERENCIAIDIDIDID_EMPRESAID_EMPRESAID_EMPRESASITUACIONSITUACIONSITUACIONFECHA_ALTAFECHA_ALTAFECHA_ALTAFECHA_MODIFICACIONFECHA_MODIFICACIONFECHA_MODIFICACIONFECHA_PEDIDOFECHA_PEDIDOFECHA_PEDIDOFECHA_CONFIRMACIONFECHA_CONFIRMACIONFECHA_CONFIRMACIONFECHA_ENTREGAFECHA_ENTREGAFECHA_ENTREGAINCIDENCIASINCIDENCIASINCIDENCIASIMPORTE_TOTALIMPORTE_TOTALIMPORTE_TOTALINCIDENCIAS_ACTIVASINCIDENCIAS_ACTIVASINCIDENCIAS_ACTIVASID_CLIENTEID_CLIENTEID_CLIENTECALLECALLECALLECODIGO_POSTALCODIGO_POSTALCODIGO_POSTALPOBLACIONPOBLACIONPOBLACIONPROVINCIAPROVINCIAPROVINCIAPERSONA_CONTACTOPERSONA_CONTACTOPERSONA_CONTACTOTELEFONOTELEFONOTELEFONOIBXSELECT + PEDIDOS_CLIENTE.ID, PEDIDOS_CLIENTE.ID_EMPRESA, PEDIDOS_CLIENTE.ID_CLIENTE, + PEDIDOS_CLIENTE.REFERENCIA, PEDIDOS_CLIENTE.FECHA_PEDIDO, PEDIDOS_CLIENTE.FECHA_CONFIRMACION, + PEDIDOS_CLIENTE.FECHA_ENTREGA, PEDIDOS_CLIENTE.SITUACION, PEDIDOS_CLIENTE.CALLE, + PEDIDOS_CLIENTE.CODIGO_POSTAL, PEDIDOS_CLIENTE.POBLACION, PEDIDOS_CLIENTE.PROVINCIA, + PEDIDOS_CLIENTE.PERSONA_CONTACTO, PEDIDOS_CLIENTE.TELEFONO, PEDIDOS_CLIENTE.OBSERVACIONES, + PEDIDOS_CLIENTE.IMPORTE_TOTAL, PEDIDOS_CLIENTE.INCIDENCIAS, PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PEDIDOS_CLIENTE.FECHA_ALTA, PEDIDOS_CLIENTE.FECHA_MODIFICACION, PEDIDOS_CLIENTE.USUARIO, + CONTACTOS.NOMBRE + +FROM PEDIDOS_CLIENTE +LEFT JOIN CONTACTOS ON PEDIDOS_CLIENTE.ID_CLIENTE = CONTACTOS.ID +WHERE PEDIDOS_CLIENTE.ID = :IDstSQLPEDIDOS_CLIENTE0FacturasClienteFalseTrueFalsefbRaiseExceptionInsert FacturasClienteFacturasClienteFalseFalseTruefbRaiseExceptionUpdate FacturasClienteDetallesFacturasClienteTrueFalseFalsefbRaiseExceptionDelete DetallesFacturasClienteDetallesFacturasClienteFalseTrueFalsefbRaiseExceptionInsert DetallesFacturasClienteDetallesFacturasClienteFalseFalseTruefbRaiseExceptionUpdate DetallesFacturasClienteFacturasClienteTrueFalseFalsefbRaiseExceptionDelete FacturasCliente diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas new file mode 100644 index 00000000..fdeea484 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas @@ -0,0 +1,2102 @@ +unit schPedidosClienteClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_PedidoCliente_ArticulosPendientesPedirAProv = '{6F84DC2B-AB56-42E0-B384-7B800C7702EB}'; + RID_DarReferencia = '{B5B33AC2-9A3C-4F5F-B7BC-CDBA0AF7B050}'; + RID_PedidosCliente = '{29043AA6-18D0-41F5-964C-369ADF23DB9D}'; + RID_PedidosCliente_Detalles = '{409919C4-F7F2-4C11-8EBE-1F6358C7731B}'; + RID_PedidosCliente_Refresh = '{C9324676-85BA-4A02-934C-8C2DC79EA157}'; + RID_PedidosCliente_Detalles_Refresh = '{8BA724CB-130C-4C3A-A1C1-D2F952A32DDD}'; + RID_PedidoCliente_Articulos_Pendientes = '{F83BD5DE-AD34-406A-8510-7C0AE4C15091}'; + + { Data table names } + nme_PedidoCliente_ArticulosPendientesPedirAProv = 'PedidoCliente_ArticulosPendientesPedirAProv'; + nme_DarReferencia = 'DarReferencia'; + nme_PedidosCliente = 'PedidosCliente'; + nme_PedidosCliente_Detalles = 'PedidosCliente_Detalles'; + nme_PedidosCliente_Refresh = 'PedidosCliente_Refresh'; + nme_PedidosCliente_Detalles_Refresh = 'PedidosCliente_Detalles_Refresh'; + nme_PedidoCliente_Articulos_Pendientes = 'PedidoCliente_Articulos_Pendientes'; + + { PedidoCliente_ArticulosPendientesPedirAProv fields } + fld_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO = 'ID_PEDIDO'; + fld_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO = 'ID_ARTICULO'; + fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE = 'CANT_PEDIDA_CLIENTE'; + fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR = 'CANT_PEDIDA_PROVEEDOR'; + fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR = 'CANT_PENDIENTE_PEDIR'; + + { PedidoCliente_ArticulosPendientesPedirAProv field indexes } + idx_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO = 0; + idx_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO = 1; + idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE = 2; + idx_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR = 3; + idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR = 4; + idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR = 5; + + { DarReferencia fields } + fld_DarReferenciaVALOR = 'VALOR'; + + { DarReferencia field indexes } + idx_DarReferenciaVALOR = 0; + + { PedidosCliente fields } + fld_PedidosClienteID = 'ID'; + fld_PedidosClienteID_EMPRESA = 'ID_EMPRESA'; + fld_PedidosClienteID_CLIENTE = 'ID_CLIENTE'; + fld_PedidosClienteNOMBRE = 'NOMBRE'; + fld_PedidosClienteREFERENCIA = 'REFERENCIA'; + fld_PedidosClienteSITUACION = 'SITUACION'; + fld_PedidosClienteFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_PedidosClienteCALLE = 'CALLE'; + fld_PedidosClienteCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_PedidosClientePOBLACION = 'POBLACION'; + fld_PedidosClientePROVINCIA = 'PROVINCIA'; + fld_PedidosClientePERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_PedidosClienteTELEFONO = 'TELEFONO'; + fld_PedidosClienteOBSERVACIONES = 'OBSERVACIONES'; + fld_PedidosClienteINCIDENCIAS = 'INCIDENCIAS'; + fld_PedidosClienteINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_PedidosClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_PedidosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PedidosClienteUSUARIO = 'USUARIO'; + fld_PedidosClienteIMPORTE_NETO = 'IMPORTE_NETO'; + fld_PedidosClienteIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosClienteDESCUENTO = 'DESCUENTO'; + fld_PedidosClienteIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_PedidosClienteBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_PedidosClienteIVA = 'IVA'; + fld_PedidosClienteIMPORTE_IVA = 'IMPORTE_IVA'; + fld_PedidosClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosClienteID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_PedidosClienteREF_TIENDA_WEB = 'REF_TIENDA_WEB'; + fld_PedidosClienteFECHA_PREVISTA_ENVIO = 'FECHA_PREVISTA_ENVIO'; + + { PedidosCliente field indexes } + idx_PedidosClienteID = 0; + idx_PedidosClienteID_EMPRESA = 1; + idx_PedidosClienteID_CLIENTE = 2; + idx_PedidosClienteNOMBRE = 3; + idx_PedidosClienteREFERENCIA = 4; + idx_PedidosClienteSITUACION = 5; + idx_PedidosClienteFECHA_PEDIDO = 6; + idx_PedidosClienteCALLE = 7; + idx_PedidosClienteCODIGO_POSTAL = 8; + idx_PedidosClientePOBLACION = 9; + idx_PedidosClientePROVINCIA = 10; + idx_PedidosClientePERSONA_CONTACTO = 11; + idx_PedidosClienteTELEFONO = 12; + idx_PedidosClienteOBSERVACIONES = 13; + idx_PedidosClienteINCIDENCIAS = 14; + idx_PedidosClienteINCIDENCIAS_ACTIVAS = 15; + idx_PedidosClienteFECHA_ALTA = 16; + idx_PedidosClienteFECHA_MODIFICACION = 17; + idx_PedidosClienteUSUARIO = 18; + idx_PedidosClienteIMPORTE_NETO = 19; + idx_PedidosClienteIMPORTE_PORTE = 20; + idx_PedidosClienteDESCUENTO = 21; + idx_PedidosClienteIMPORTE_DESCUENTO = 22; + idx_PedidosClienteBASE_IMPONIBLE = 23; + idx_PedidosClienteIVA = 24; + idx_PedidosClienteIMPORTE_IVA = 25; + idx_PedidosClienteIMPORTE_TOTAL = 26; + idx_PedidosClienteID_FORMA_PAGO = 27; + idx_PedidosClienteREF_TIENDA_WEB = 28; + idx_PedidosClienteFECHA_PREVISTA_ENVIO = 29; + + { PedidosCliente_Detalles fields } + fld_PedidosCliente_DetallesID = 'ID'; + fld_PedidosCliente_DetallesID_PEDIDO = 'ID_PEDIDO'; + fld_PedidosCliente_DetallesPOSICION = 'POSICION'; + fld_PedidosCliente_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_PedidosCliente_DetallesREFERENCIA = 'REFERENCIA'; + fld_PedidosCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosCliente_DetallesCONCEPTO = 'CONCEPTO'; + fld_PedidosCliente_DetallesCANTIDAD = 'CANTIDAD'; + fld_PedidosCliente_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PedidosCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_PedidosCliente_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosCliente_DetallesVISIBLE = 'VISIBLE'; + fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PedidosCliente_Detalles field indexes } + idx_PedidosCliente_DetallesID = 0; + idx_PedidosCliente_DetallesID_PEDIDO = 1; + idx_PedidosCliente_DetallesPOSICION = 2; + idx_PedidosCliente_DetallesTIPO_DETALLE = 3; + idx_PedidosCliente_DetallesREFERENCIA = 4; + idx_PedidosCliente_DetallesID_ARTICULO = 5; + idx_PedidosCliente_DetallesCONCEPTO = 6; + idx_PedidosCliente_DetallesCANTIDAD = 7; + idx_PedidosCliente_DetallesIMPORTE_UNIDAD = 8; + idx_PedidosCliente_DetallesIMPORTE_TOTAL = 9; + idx_PedidosCliente_DetallesDESCUENTO = 10; + idx_PedidosCliente_DetallesIMPORTE_PORTE = 11; + idx_PedidosCliente_DetallesVISIBLE = 12; + idx_PedidosCliente_DetallesREFERENCIA_PROVEEDOR = 13; + + { PedidosCliente_Refresh fields } + fld_PedidosCliente_RefreshID = 'ID'; + fld_PedidosCliente_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_PedidosCliente_RefreshID_CLIENTE = 'ID_CLIENTE'; + fld_PedidosCliente_RefreshNOMBRE = 'NOMBRE'; + fld_PedidosCliente_RefreshREFERENCIA = 'REFERENCIA'; + fld_PedidosCliente_RefreshSITUACION = 'SITUACION'; + fld_PedidosCliente_RefreshFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_PedidosCliente_RefreshCALLE = 'CALLE'; + fld_PedidosCliente_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_PedidosCliente_RefreshPOBLACION = 'POBLACION'; + fld_PedidosCliente_RefreshPROVINCIA = 'PROVINCIA'; + fld_PedidosCliente_RefreshPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_PedidosCliente_RefreshTELEFONO = 'TELEFONO'; + fld_PedidosCliente_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_PedidosCliente_RefreshINCIDENCIAS = 'INCIDENCIAS'; + fld_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_PedidosCliente_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_PedidosCliente_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PedidosCliente_RefreshUSUARIO = 'USUARIO'; + fld_PedidosCliente_RefreshIMPORTE_NETO = 'IMPORTE_NETO'; + fld_PedidosCliente_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosCliente_RefreshDESCUENTO = 'DESCUENTO'; + fld_PedidosCliente_RefreshIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_PedidosCliente_RefreshBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_PedidosCliente_RefreshIVA = 'IVA'; + fld_PedidosCliente_RefreshIMPORTE_IVA = 'IMPORTE_IVA'; + fld_PedidosCliente_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosCliente_RefreshID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_PedidosCliente_RefreshREF_TIENDA_WEB = 'REF_TIENDA_WEB'; + fld_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO = 'FECHA_PREVISTA_ENVIO'; + + { PedidosCliente_Refresh field indexes } + idx_PedidosCliente_RefreshID = 0; + idx_PedidosCliente_RefreshID_EMPRESA = 1; + idx_PedidosCliente_RefreshID_CLIENTE = 2; + idx_PedidosCliente_RefreshNOMBRE = 3; + idx_PedidosCliente_RefreshREFERENCIA = 4; + idx_PedidosCliente_RefreshSITUACION = 5; + idx_PedidosCliente_RefreshFECHA_PEDIDO = 6; + idx_PedidosCliente_RefreshCALLE = 7; + idx_PedidosCliente_RefreshCODIGO_POSTAL = 8; + idx_PedidosCliente_RefreshPOBLACION = 9; + idx_PedidosCliente_RefreshPROVINCIA = 10; + idx_PedidosCliente_RefreshPERSONA_CONTACTO = 11; + idx_PedidosCliente_RefreshTELEFONO = 12; + idx_PedidosCliente_RefreshOBSERVACIONES = 13; + idx_PedidosCliente_RefreshINCIDENCIAS = 14; + idx_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS = 15; + idx_PedidosCliente_RefreshFECHA_ALTA = 16; + idx_PedidosCliente_RefreshFECHA_MODIFICACION = 17; + idx_PedidosCliente_RefreshUSUARIO = 18; + idx_PedidosCliente_RefreshIMPORTE_NETO = 19; + idx_PedidosCliente_RefreshIMPORTE_PORTE = 20; + idx_PedidosCliente_RefreshDESCUENTO = 21; + idx_PedidosCliente_RefreshIMPORTE_DESCUENTO = 22; + idx_PedidosCliente_RefreshBASE_IMPONIBLE = 23; + idx_PedidosCliente_RefreshIVA = 24; + idx_PedidosCliente_RefreshIMPORTE_IVA = 25; + idx_PedidosCliente_RefreshIMPORTE_TOTAL = 26; + idx_PedidosCliente_RefreshID_FORMA_PAGO = 27; + idx_PedidosCliente_RefreshREF_TIENDA_WEB = 28; + idx_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO = 29; + + { PedidosCliente_Detalles_Refresh fields } + fld_PedidosCliente_Detalles_RefreshID = 'ID'; + fld_PedidosCliente_Detalles_RefreshID_PEDIDO = 'ID_PEDIDO'; + fld_PedidosCliente_Detalles_RefreshPOSICION = 'POSICION'; + fld_PedidosCliente_Detalles_RefreshTIPO_DETALLE = 'TIPO_DETALLE'; + fld_PedidosCliente_Detalles_RefreshREFERENCIA = 'REFERENCIA'; + fld_PedidosCliente_Detalles_RefreshID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosCliente_Detalles_RefreshCONCEPTO = 'CONCEPTO'; + fld_PedidosCliente_Detalles_RefreshCANTIDAD = 'CANTIDAD'; + fld_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosCliente_Detalles_RefreshDESCUENTO = 'DESCUENTO'; + fld_PedidosCliente_Detalles_RefreshIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosCliente_Detalles_RefreshVISIBLE = 'VISIBLE'; + fld_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PedidosCliente_Detalles_Refresh field indexes } + idx_PedidosCliente_Detalles_RefreshID = 0; + idx_PedidosCliente_Detalles_RefreshID_PEDIDO = 1; + idx_PedidosCliente_Detalles_RefreshPOSICION = 2; + idx_PedidosCliente_Detalles_RefreshTIPO_DETALLE = 3; + idx_PedidosCliente_Detalles_RefreshREFERENCIA = 4; + idx_PedidosCliente_Detalles_RefreshID_ARTICULO = 5; + idx_PedidosCliente_Detalles_RefreshCONCEPTO = 6; + idx_PedidosCliente_Detalles_RefreshCANTIDAD = 7; + idx_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD = 8; + idx_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL = 9; + idx_PedidosCliente_Detalles_RefreshDESCUENTO = 10; + idx_PedidosCliente_Detalles_RefreshIMPORTE_PORTE = 11; + idx_PedidosCliente_Detalles_RefreshVISIBLE = 12; + idx_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR = 13; + + { PedidoCliente_Articulos_Pendientes fields } + fld_PedidoCliente_Articulos_PendientesID_ARTICULO = 'ID_ARTICULO'; + fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED = 'CANTIDAD_PED'; + fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB = 'CANTIDAD_ALB'; + fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE = 'CANTIDAD_PENDIENTE'; + + { PedidoCliente_Articulos_Pendientes field indexes } + idx_PedidoCliente_Articulos_PendientesID_ARTICULO = 0; + idx_PedidoCliente_Articulos_PendientesCANTIDAD_PED = 1; + idx_PedidoCliente_Articulos_PendientesCANTIDAD_ALB = 2; + idx_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE = 3; + +type + { IPedidoCliente_ArticulosPendientesPedirAProv } + IPedidoCliente_ArticulosPendientesPedirAProv = interface(IDAStronglyTypedDataTable) + ['{6FE1A049-F3FB-4A90-8AFC-65B1CFE8A79F}'] + { Property getters and setters } + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCANT_PEDIDA_CLIENTEValue: Integer; + procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Integer); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetCANT_PEDIDA_PROVEEDORValue: Integer; + procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); + function GetCANT_PENDIENTE_PEDIRValue: Integer; + procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Integer); + + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CANT_PEDIDA_CLIENTE: Integer read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue; + property CANT_PENDIENTE_PEDIR: Integer read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue; + end; + + { TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules } + TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules = class(TDADataTableRules, IPedidoCliente_ArticulosPendientesPedirAProv) + private + protected + { Property getters and setters } + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCANT_PEDIDA_CLIENTEValue: Integer; virtual; + procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual; + procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual; + function GetCANT_PENDIENTE_PEDIRValue: Integer; virtual; + procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Integer); virtual; + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CANT_PEDIDA_CLIENTE: Integer read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue; + property CANT_PENDIENTE_PEDIR: Integer read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{54166B3A-781F-47CC-A3BD-DD4DEA5045D4}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosCliente } + IPedidosCliente = interface(IDAStronglyTypedDataTable) + ['{942279DC-C378-4D7C-939C-A5F3D0BF0501}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetREF_TIENDA_WEBValue: Integer; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); + function GetFECHA_PREVISTA_ENVIOValue: DateTime; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property REF_TIENDA_WEB: Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + end; + + { TPedidosClienteDataTableRules } + TPedidosClienteDataTableRules = class(TDADataTableRules, IPedidosCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetREF_TIENDA_WEBValue: Integer; virtual; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property REF_TIENDA_WEB: Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_Detalles } + IPedidosCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{08D6C93B-AF10-4FF2-B990-6450BF6AC6DE}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TPedidosCliente_DetallesDataTableRules } + TPedidosCliente_DetallesDataTableRules = class(TDADataTableRules, IPedidosCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_Refresh } + IPedidosCliente_Refresh = interface(IDAStronglyTypedDataTable) + ['{5497A314-3CE4-4383-B0E3-5459EFE32BAB}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetOBSERVACIONESValue: IROStrings; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); + function GetINCIDENCIASValue: IROStrings; + procedure SetINCIDENCIASValue(const aValue: IROStrings); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetREF_TIENDA_WEBValue: Integer; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); + function GetFECHA_PREVISTA_ENVIOValue: DateTime; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property REF_TIENDA_WEB: Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + end; + + { TPedidosCliente_RefreshDataTableRules } + TPedidosCliente_RefreshDataTableRules = class(TDADataTableRules, IPedidosCliente_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetREF_TIENDA_WEBValue: Integer; virtual; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property REF_TIENDA_WEB: Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_Detalles_Refresh } + IPedidosCliente_Detalles_Refresh = interface(IDAStronglyTypedDataTable) + ['{AF5168D8-3EEC-4C73-A548-8E63FA84179B}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + end; + + { TPedidosCliente_Detalles_RefreshDataTableRules } + TPedidosCliente_Detalles_RefreshDataTableRules = class(TDADataTableRules, IPedidosCliente_Detalles_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidoCliente_Articulos_Pendientes } + IPedidoCliente_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) + ['{739C33F2-D35D-427A-AAF8-2BE577A00D6C}'] + { Property getters and setters } + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetCANTIDAD_PEDValue: Integer; + procedure SetCANTIDAD_PEDValue(const aValue: Integer); + function GetCANTIDAD_ALBValue: Integer; + procedure SetCANTIDAD_ALBValue(const aValue: Integer); + function GetCANTIDAD_PENDIENTEValue: Integer; + procedure SetCANTIDAD_PENDIENTEValue(const aValue: Integer); + + + { Properties } + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CANTIDAD_PED: Integer read GetCANTIDAD_PEDValue write SetCANTIDAD_PEDValue; + property CANTIDAD_ALB: Integer read GetCANTIDAD_ALBValue write SetCANTIDAD_ALBValue; + property CANTIDAD_PENDIENTE: Integer read GetCANTIDAD_PENDIENTEValue write SetCANTIDAD_PENDIENTEValue; + end; + + { TPedidoCliente_Articulos_PendientesDataTableRules } + TPedidoCliente_Articulos_PendientesDataTableRules = class(TDADataTableRules, IPedidoCliente_Articulos_Pendientes) + private + protected + { Property getters and setters } + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCANTIDAD_PEDValue: Integer; virtual; + procedure SetCANTIDAD_PEDValue(const aValue: Integer); virtual; + function GetCANTIDAD_ALBValue: Integer; virtual; + procedure SetCANTIDAD_ALBValue(const aValue: Integer); virtual; + function GetCANTIDAD_PENDIENTEValue: Integer; virtual; + procedure SetCANTIDAD_PENDIENTEValue(const aValue: Integer); virtual; + + { Properties } + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property CANTIDAD_PED: Integer read GetCANTIDAD_PEDValue write SetCANTIDAD_PEDValue; + property CANTIDAD_ALB: Integer read GetCANTIDAD_ALBValue write SetCANTIDAD_ALBValue; + property CANTIDAD_PENDIENTE: Integer read GetCANTIDAD_PENDIENTEValue write SetCANTIDAD_PENDIENTEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules } +constructor TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO].AsInteger := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO].AsInteger := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PEDIDA_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCANT_PEDIDA_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE].AsInteger := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR].AsInteger := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PEDIDA_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsInteger := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PENDIENTE_PEDIRValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR].AsInteger; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCANT_PENDIENTE_PEDIRValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR].AsInteger := aValue; +end; + + +{ TDarReferenciaDataTableRules } +constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; +end; + +procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; +end; + + +{ TPedidosClienteDataTableRules } +constructor TPedidosClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteID].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteID].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteID_EMPRESA].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteID_EMPRESA].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteID_CLIENTE].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteID_CLIENTE].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteNOMBRE].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteNOMBRE].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteREFERENCIA].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteREFERENCIA].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteSITUACION].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteSITUACION].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosClienteFECHA_PEDIDO].AsDateTime; +end; + +procedure TPedidosClienteDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosClienteFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TPedidosClienteDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteCALLE].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteCALLE].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteCODIGO_POSTAL].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteCODIGO_POSTAL].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosClientePOBLACION].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClientePOBLACION].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosClientePROVINCIA].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClientePROVINCIA].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_PedidosClientePERSONA_CONTACTO].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClientePERSONA_CONTACTO].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteTELEFONO].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteTELEFONO].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosClienteOBSERVACIONES].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosClienteOBSERVACIONES].AsString := aValue.Text; +end; + +function TPedidosClienteDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosClienteINCIDENCIAS].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosClienteINCIDENCIAS].AsString := aValue.Text; +end; + +function TPedidosClienteDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosClienteFECHA_ALTA].AsDateTime; +end; + +procedure TPedidosClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TPedidosClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPedidosClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPedidosClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteUSUARIO].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteUSUARIO].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteIMPORTE_NETO].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteIMPORTE_NETO].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosClienteDESCUENTO].AsFloat; +end; + +procedure TPedidosClienteDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosClienteDESCUENTO].AsFloat := aValue; +end; + +function TPedidosClienteDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteBASE_IMPONIBLE].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_PedidosClienteIVA].AsFloat; +end; + +procedure TPedidosClienteDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosClienteIVA].AsFloat := aValue; +end; + +function TPedidosClienteDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteIMPORTE_IVA].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteIMPORTE_IVA].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosClienteDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteID_FORMA_PAGO].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteID_FORMA_PAGO].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetREF_TIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteREF_TIENDA_WEB].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetREF_TIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteREF_TIENDA_WEB].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosClienteFECHA_PREVISTA_ENVIO].AsDateTime; +end; + +procedure TPedidosClienteDataTableRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosClienteFECHA_PREVISTA_ENVIO].AsDateTime := aValue; +end; + + +{ TPedidosCliente_DetallesDataTableRules } +constructor TPedidosCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosCliente_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesID].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesID].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesID_PEDIDO].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesID_PEDIDO].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesPOSICION].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesPOSICION].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesTIPO_DETALLE].AsString; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesREFERENCIA].AsString; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_DetallesREFERENCIA].AsString := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesID_ARTICULO].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesCONCEPTO].AsString; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_DetallesCONCEPTO].AsString := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesCANTIDAD].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesCANTIDAD].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesDESCUENTO].AsFloat; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosCliente_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesVISIBLE].AsInteger; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_DetallesVISIBLE].AsInteger := aValue; +end; + +function TPedidosCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPedidosCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TPedidosCliente_RefreshDataTableRules } +constructor TPedidosCliente_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosCliente_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshID].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshID].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshID_EMPRESA].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshID_CLIENTE].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshID_CLIENTE].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshNOMBRE].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshNOMBRE].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshREFERENCIA].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshREFERENCIA].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshSITUACION].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshSITUACION].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshFECHA_PEDIDO].AsDateTime; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosCliente_RefreshFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshCALLE].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshCALLE].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshPOBLACION].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshPOBLACION].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshPROVINCIA].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshPROVINCIA].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshPERSONA_CONTACTO].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshPERSONA_CONTACTO].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshTELEFONO].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshTELEFONO].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosCliente_RefreshOBSERVACIONES].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosCliente_RefreshOBSERVACIONES].AsString := aValue.Text; +end; + +function TPedidosCliente_RefreshDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_PedidosCliente_RefreshINCIDENCIAS].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_PedidosCliente_RefreshINCIDENCIAS].AsString := aValue.Text; +end; + +function TPedidosCliente_RefreshDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosCliente_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosCliente_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshUSUARIO].AsString; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_RefreshUSUARIO].AsString := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_NETO].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_NETO].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshDESCUENTO].AsFloat; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosCliente_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshBASE_IMPONIBLE].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIVA].AsFloat; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIVA].AsFloat := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_IVA].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_IVA].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshID_FORMA_PAGO].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshID_FORMA_PAGO].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetREF_TIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshREF_TIENDA_WEB].AsInteger; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetREF_TIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_RefreshREF_TIENDA_WEB].AsInteger := aValue; +end; + +function TPedidosCliente_RefreshDataTableRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO].AsDateTime; +end; + +procedure TPedidosCliente_RefreshDataTableRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO].AsDateTime := aValue; +end; + + +{ TPedidosCliente_Detalles_RefreshDataTableRules } +constructor TPedidosCliente_Detalles_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosCliente_Detalles_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID_PEDIDO].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID_PEDIDO].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshPOSICION].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshPOSICION].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshTIPO_DETALLE].AsString; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshTIPO_DETALLE].AsString := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshREFERENCIA].AsString; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshREFERENCIA].AsString := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID_ARTICULO].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshID_ARTICULO].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshCONCEPTO].AsString; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshCONCEPTO].AsString := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshCANTIDAD].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshCANTIDAD].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshDESCUENTO].AsFloat; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshDESCUENTO].AsFloat := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshVISIBLE].AsInteger; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshVISIBLE].AsInteger := aValue; +end; + +function TPedidosCliente_Detalles_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPedidosCliente_Detalles_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + + +{ TPedidoCliente_Articulos_PendientesDataTableRules } +constructor TPedidoCliente_Articulos_PendientesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidoCliente_Articulos_PendientesDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidoCliente_Articulos_PendientesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_Articulos_PendientesID_ARTICULO].AsInteger; +end; + +procedure TPedidoCliente_Articulos_PendientesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_Articulos_PendientesID_ARTICULO].AsInteger := aValue; +end; + +function TPedidoCliente_Articulos_PendientesDataTableRules.GetCANTIDAD_PEDValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_PED].AsInteger; +end; + +procedure TPedidoCliente_Articulos_PendientesDataTableRules.SetCANTIDAD_PEDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_PED].AsInteger := aValue; +end; + +function TPedidoCliente_Articulos_PendientesDataTableRules.GetCANTIDAD_ALBValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_ALB].AsInteger; +end; + +procedure TPedidoCliente_Articulos_PendientesDataTableRules.SetCANTIDAD_ALBValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_ALB].AsInteger := aValue; +end; + +function TPedidoCliente_Articulos_PendientesDataTableRules.GetCANTIDAD_PENDIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE].AsInteger; +end; + +procedure TPedidoCliente_Articulos_PendientesDataTableRules.SetCANTIDAD_PENDIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE].AsInteger := aValue; +end; + + +initialization + RegisterDataTableRules(RID_PedidoCliente_ArticulosPendientesPedirAProv, TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules); + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_PedidosCliente, TPedidosClienteDataTableRules); + RegisterDataTableRules(RID_PedidosCliente_Detalles, TPedidosCliente_DetallesDataTableRules); + RegisterDataTableRules(RID_PedidosCliente_Refresh, TPedidosCliente_RefreshDataTableRules); + RegisterDataTableRules(RID_PedidosCliente_Detalles_Refresh, TPedidosCliente_Detalles_RefreshDataTableRules); + RegisterDataTableRules(RID_PedidoCliente_Articulos_Pendientes, TPedidoCliente_Articulos_PendientesDataTableRules); + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas new file mode 100644 index 00000000..377c40fa --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas @@ -0,0 +1,2459 @@ +unit schPedidosClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schPedidosClienteClient_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_PedidoCliente_ArticulosPendientesPedirAProvDelta = '{8CAA1451-5418-4A49-8092-77D662FCFEBB}'; + RID_DarReferenciaDelta = '{3195925E-F00F-40F9-85C6-6E9AA20FF8D3}'; + RID_PedidosClienteDelta = '{F2845970-3ECE-403D-A2B5-8514282DB50B}'; + RID_PedidosCliente_DetallesDelta = '{7191CDD7-4BC8-4B02-B9AE-35A8A30B4AAD}'; + RID_PedidosCliente_RefreshDelta = '{D92463E8-0736-4F66-A1E4-46F944A8D16C}'; + RID_PedidosCliente_Detalles_RefreshDelta = '{9EAD80F8-F99D-4B79-9B4C-D9050CF9EF8B}'; + RID_PedidoCliente_Articulos_PendientesDelta = '{63091BDF-3A9C-41C0-A8AD-FD6485B695BE}'; + +type + { IPedidoCliente_ArticulosPendientesPedirAProvDelta } + IPedidoCliente_ArticulosPendientesPedirAProvDelta = interface(IPedidoCliente_ArticulosPendientesPedirAProv) + ['{8CAA1451-5418-4A49-8092-77D662FCFEBB}'] + { Property getters and setters } + function GetOldID_PEDIDOValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldCANT_PEDIDA_CLIENTEValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldCANT_PEDIDA_PROVEEDORValue : Integer; + function GetOldCANT_PENDIENTE_PEDIRValue : Integer; + + { Properties } + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCANT_PEDIDA_CLIENTE : Integer read GetOldCANT_PEDIDA_CLIENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue; + property OldCANT_PENDIENTE_PEDIR : Integer read GetOldCANT_PENDIENTE_PEDIRValue; + end; + + { TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules } + TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidoCliente_ArticulosPendientesPedirAProv, IPedidoCliente_ArticulosPendientesPedirAProvDelta) + private + protected + { Property getters and setters } + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCANT_PEDIDA_CLIENTEValue: Integer; virtual; + function GetOldCANT_PEDIDA_CLIENTEValue: Integer; virtual; + procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Integer); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual; + function GetOldCANT_PEDIDA_PROVEEDORValue: Integer; virtual; + procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual; + function GetCANT_PENDIENTE_PEDIRValue: Integer; virtual; + function GetOldCANT_PENDIENTE_PEDIRValue: Integer; virtual; + procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Integer); virtual; + + { Properties } + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CANT_PEDIDA_CLIENTE : Integer read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue; + property OldCANT_PEDIDA_CLIENTE : Integer read GetOldCANT_PEDIDA_CLIENTEValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property CANT_PEDIDA_PROVEEDOR : Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue; + property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue; + property CANT_PENDIENTE_PEDIR : Integer read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue; + property OldCANT_PENDIENTE_PEDIR : Integer read GetOldCANT_PENDIENTE_PEDIRValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{3195925E-F00F-40F9-85C6-6E9AA20FF8D3}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TDarReferenciaBusinessProcessorRules } + TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosClienteDelta } + IPedidosClienteDelta = interface(IPedidosCliente) + ['{F2845970-3ECE-403D-A2B5-8514282DB50B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBREValue : String; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldFECHA_PEDIDOValue : DateTime; + function GetOldCALLEValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + 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 GetOldREF_TIENDA_WEBValue : Integer; + function GetOldFECHA_PREVISTA_ENVIOValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + 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 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 OldREF_TIENDA_WEB : Integer read GetOldREF_TIENDA_WEBValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + end; + + { TPedidosClienteBusinessProcessorRules } + TPedidosClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosCliente, IPedidosClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetREF_TIENDA_WEBValue: Integer; virtual; + function GetOldREF_TIENDA_WEBValue: Integer; virtual; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property REF_TIENDA_WEB : Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property OldREF_TIENDA_WEB : Integer read GetOldREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO : DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_DetallesDelta } + IPedidosCliente_DetallesDelta = interface(IPedidosCliente_Detalles) + ['{7191CDD7-4BC8-4B02-B9AE-35A8A30B4AAD}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPedidosCliente_DetallesBusinessProcessorRules } + TPedidosCliente_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosCliente_Detalles, IPedidosCliente_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_RefreshDelta } + IPedidosCliente_RefreshDelta = interface(IPedidosCliente_Refresh) + ['{D92463E8-0736-4F66-A1E4-46F944A8D16C}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBREValue : String; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldFECHA_PEDIDOValue : DateTime; + function GetOldCALLEValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + 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 GetOldREF_TIENDA_WEBValue : Integer; + function GetOldFECHA_PREVISTA_ENVIOValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + 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 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 OldREF_TIENDA_WEB : Integer read GetOldREF_TIENDA_WEBValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + end; + + { TPedidosCliente_RefreshBusinessProcessorRules } + TPedidosCliente_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosCliente_Refresh, IPedidosCliente_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetCALLEValue: String; virtual; + function GetOldCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetPOBLACIONValue: String; virtual; + function GetOldPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPROVINCIAValue: String; virtual; + function GetOldPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetTELEFONOValue: String; virtual; + function GetOldTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetREF_TIENDA_WEBValue: Integer; virtual; + function GetOldREF_TIENDA_WEBValue: Integer; virtual; + procedure SetREF_TIENDA_WEBValue(const aValue: Integer); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property OldCALLE : String read GetOldCALLEValue; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property REF_TIENDA_WEB : Integer read GetREF_TIENDA_WEBValue write SetREF_TIENDA_WEBValue; + property OldREF_TIENDA_WEB : Integer read GetOldREF_TIENDA_WEBValue; + property FECHA_PREVISTA_ENVIO : DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosCliente_Detalles_RefreshDelta } + IPedidosCliente_Detalles_RefreshDelta = interface(IPedidosCliente_Detalles_Refresh) + ['{9EAD80F8-F99D-4B79-9B4C-D9050CF9EF8B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldREFERENCIA_PROVEEDORValue : 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 OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPedidosCliente_Detalles_RefreshBusinessProcessorRules } + TPedidosCliente_Detalles_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosCliente_Detalles_Refresh, IPedidosCliente_Detalles_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetOldPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCONCEPTOValue: String; virtual; + function GetOldCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetOldCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidoCliente_Articulos_PendientesDelta } + IPedidoCliente_Articulos_PendientesDelta = interface(IPedidoCliente_Articulos_Pendientes) + ['{63091BDF-3A9C-41C0-A8AD-FD6485B695BE}'] + { Property getters and setters } + function GetOldID_ARTICULOValue : Integer; + function GetOldCANTIDAD_PEDValue : Integer; + function GetOldCANTIDAD_ALBValue : Integer; + function GetOldCANTIDAD_PENDIENTEValue : Integer; + + { Properties } + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCANTIDAD_PED : Integer read GetOldCANTIDAD_PEDValue; + property OldCANTIDAD_ALB : Integer read GetOldCANTIDAD_ALBValue; + property OldCANTIDAD_PENDIENTE : Integer read GetOldCANTIDAD_PENDIENTEValue; + end; + + { TPedidoCliente_Articulos_PendientesBusinessProcessorRules } + TPedidoCliente_Articulos_PendientesBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidoCliente_Articulos_Pendientes, IPedidoCliente_Articulos_PendientesDelta) + private + protected + { Property getters and setters } + function GetID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetCANTIDAD_PEDValue: Integer; virtual; + function GetOldCANTIDAD_PEDValue: Integer; virtual; + procedure SetCANTIDAD_PEDValue(const aValue: Integer); virtual; + function GetCANTIDAD_ALBValue: Integer; virtual; + function GetOldCANTIDAD_ALBValue: Integer; virtual; + procedure SetCANTIDAD_ALBValue(const aValue: Integer); virtual; + function GetCANTIDAD_PENDIENTEValue: Integer; virtual; + function GetOldCANTIDAD_PENDIENTEValue: Integer; virtual; + procedure SetCANTIDAD_PENDIENTEValue(const aValue: Integer); virtual; + + { Properties } + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property CANTIDAD_PED : Integer read GetCANTIDAD_PEDValue write SetCANTIDAD_PEDValue; + property OldCANTIDAD_PED : Integer read GetOldCANTIDAD_PEDValue; + property CANTIDAD_ALB : Integer read GetCANTIDAD_ALBValue write SetCANTIDAD_ALBValue; + property OldCANTIDAD_ALB : Integer read GetOldCANTIDAD_ALBValue; + property CANTIDAD_PENDIENTE : Integer read GetCANTIDAD_PENDIENTEValue write SetCANTIDAD_PENDIENTEValue; + property OldCANTIDAD_PENDIENTE : Integer read GetOldCANTIDAD_PENDIENTEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules } +constructor TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO] := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_ARTICULO] := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCANT_PEDIDA_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCANT_PEDIDA_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCANT_PEDIDA_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_CLIENTE] := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR] := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCANT_PEDIDA_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCANT_PEDIDA_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR] := aValue; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCANT_PENDIENTE_PEDIRValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR]; +end; + +function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCANT_PENDIENTE_PEDIRValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR]; +end; + +procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCANT_PENDIENTE_PEDIRValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR] := aValue; +end; + + +{ TDarReferenciaBusinessProcessorRules } +constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + + +{ TPedidosClienteBusinessProcessorRules } +constructor TPedidosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_EMPRESA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_EMPRESA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_EMPRESA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_CLIENTE]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_CLIENTE]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_CLIENTE] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteNOMBRE]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteNOMBRE]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteNOMBRE] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREFERENCIA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteSITUACION]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteSITUACION]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteSITUACION] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PEDIDO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PEDIDO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PEDIDO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCALLE]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCALLE]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCALLE] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCODIGO_POSTAL]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCODIGO_POSTAL]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCODIGO_POSTAL] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePOBLACION]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePOBLACION]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePOBLACION] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePROVINCIA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePROVINCIA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePROVINCIA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePERSONA_CONTACTO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePERSONA_CONTACTO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePERSONA_CONTACTO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTELEFONO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteTELEFONO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTELEFONO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteOBSERVACIONES]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteOBSERVACIONES]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteOBSERVACIONES] := aValue.Text; +end; + +function TPedidosClienteBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS] := aValue.Text; +end; + +function TPedidosClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_ALTA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_ALTA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_ALTA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_MODIFICACION]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_MODIFICACION]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_MODIFICACION] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteUSUARIO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteUSUARIO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteUSUARIO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_NETO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_NETO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_NETO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_PORTE]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_PORTE]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_PORTE] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDESCUENTO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteBASE_IMPONIBLE]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteBASE_IMPONIBLE]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteBASE_IMPONIBLE] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIVA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIVA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIVA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_IVA]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_IVA]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_IVA] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_TOTAL]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_TOTAL]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_TOTAL] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_FORMA_PAGO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_FORMA_PAGO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_FORMA_PAGO] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetREF_TIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREF_TIENDA_WEB]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldREF_TIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREF_TIENDA_WEB]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetREF_TIENDA_WEBValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREF_TIENDA_WEB] := aValue; +end; + +function TPedidosClienteBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO] := aValue; +end; + + +{ TPedidosCliente_DetallesBusinessProcessorRules } +constructor TPedidosCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosCliente_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_PEDIDO]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_PEDIDO]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_PEDIDO] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesPOSICION]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesPOSICION]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesPOSICION] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_ARTICULO]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_ARTICULO]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_ARTICULO] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCONCEPTO]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCONCEPTO]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCONCEPTO] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCANTIDAD]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCANTIDAD]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCANTIDAD] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesDESCUENTO]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesDESCUENTO]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesDESCUENTO] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesVISIBLE]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesVISIBLE]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesVISIBLE] := aValue; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +procedure TPedidosCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TPedidosCliente_RefreshBusinessProcessorRules } +constructor TPedidosCliente_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosCliente_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshID]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_EMPRESA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshID_EMPRESA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_EMPRESA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_CLIENTE]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshID_CLIENTE]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_CLIENTE] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshNOMBRE]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshNOMBRE]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshNOMBRE] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshREFERENCIA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshREFERENCIA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshREFERENCIA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshSITUACION]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshSITUACION]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshSITUACION] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_PEDIDO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshFECHA_PEDIDO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_PEDIDO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshCALLE]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshCALLE]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshCALLE] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshCODIGO_POSTAL]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshCODIGO_POSTAL]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshCODIGO_POSTAL] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPOBLACION]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshPOBLACION]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPOBLACION] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPROVINCIA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshPROVINCIA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPROVINCIA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPERSONA_CONTACTO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshPERSONA_CONTACTO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshPERSONA_CONTACTO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshTELEFONO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshTELEFONO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshTELEFONO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshOBSERVACIONES]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshOBSERVACIONES]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshOBSERVACIONES] := aValue.Text; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshINCIDENCIAS]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshINCIDENCIAS]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshINCIDENCIAS] := aValue.Text; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshINCIDENCIAS_ACTIVAS] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_ALTA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshFECHA_ALTA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_ALTA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_MODIFICACION]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshFECHA_MODIFICACION]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshUSUARIO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshUSUARIO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshUSUARIO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_NETO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIMPORTE_NETO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_NETO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_PORTE]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIMPORTE_PORTE]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_PORTE] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshDESCUENTO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshDESCUENTO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshDESCUENTO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_DESCUENTO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIMPORTE_DESCUENTO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_DESCUENTO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshBASE_IMPONIBLE]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshBASE_IMPONIBLE]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshBASE_IMPONIBLE] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIVA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIVA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIVA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_IVA]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIMPORTE_IVA]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_IVA] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_TOTAL]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshIMPORTE_TOTAL]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_FORMA_PAGO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshID_FORMA_PAGO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshID_FORMA_PAGO] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetREF_TIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshREF_TIENDA_WEB]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldREF_TIENDA_WEBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshREF_TIENDA_WEB]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetREF_TIENDA_WEBValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshREF_TIENDA_WEB] := aValue; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO]; +end; + +function TPedidosCliente_RefreshBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO]; +end; + +procedure TPedidosCliente_RefreshBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_RefreshFECHA_PREVISTA_ENVIO] := aValue; +end; + + +{ TPedidosCliente_Detalles_RefreshBusinessProcessorRules } +constructor TPedidosCliente_Detalles_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosCliente_Detalles_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshID]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID_PEDIDO]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshID_PEDIDO]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID_PEDIDO] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshPOSICION]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshPOSICION]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshPOSICION] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshTIPO_DETALLE]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshTIPO_DETALLE] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID_ARTICULO]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshID_ARTICULO]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshID_ARTICULO] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshCONCEPTO]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshCONCEPTO]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshCONCEPTO] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshCANTIDAD]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshCANTIDAD]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshCANTIDAD] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_UNIDAD] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshDESCUENTO]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshDESCUENTO]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshDESCUENTO] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_PORTE]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshIMPORTE_PORTE] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshVISIBLE]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshVISIBLE]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshVISIBLE] := aValue; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TPedidosCliente_Detalles_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TPedidosCliente_Detalles_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalles_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + + +{ TPedidoCliente_Articulos_PendientesBusinessProcessorRules } +constructor TPedidoCliente_Articulos_PendientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidoCliente_Articulos_PendientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]; +end; + +procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO] := aValue; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_PEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]; +end; + +procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_PEDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED] := aValue; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_ALBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_ALBValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]; +end; + +procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_ALBValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB] := aValue; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_PENDIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]; +end; + +function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PENDIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]; +end; + +procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_PENDIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_PedidoCliente_ArticulosPendientesPedirAProvDelta, TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosClienteDelta, TPedidosClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosCliente_DetallesDelta, TPedidosCliente_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosCliente_RefreshDelta, TPedidosCliente_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosCliente_Detalles_RefreshDelta, TPedidosCliente_Detalles_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidoCliente_Articulos_PendientesDelta, TPedidoCliente_Articulos_PendientesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/uBizDetallesPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Model/uBizDetallesPedidoCliente.pas new file mode 100644 index 00000000..612488b4 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/uBizDetallesPedidoCliente.pas @@ -0,0 +1,59 @@ +unit uBizDetallesPedidoCliente; + +interface + +uses + uDADataTable, schPedidosClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_PEDIDO_CLIENTE = 'Client.PedidoCliente.Detalles'; + BIZ_CLIENT_ARTICULOS_PEND_PEDIDO_CLIENTE = 'Client.PedidoCliente.ArticulosPendientes'; + +type + IBizDetallesPedidoCliente = interface(IPedidosCliente_Detalles) + ['{2D7781DC-AD16-4857-9567-5C1620319781}'] + end; + + IBizPedidoClienteArticulosPend = interface(IPedidoCliente_Articulos_Pendientes) + ['{DD245879-DD80-4E96-995A-6D3A09D72544}'] + end; + + TBizDetallesPedidoCliente = class(TPedidosCliente_DetallesDataTableRules, IBizDetallesPedidoCliente) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + + TBizPedidoClienteArticulosPend = class(TPedidoCliente_Articulos_PendientesDataTableRules, IBizPedidoClienteArticulosPend) + end; + + +implementation + +{ TBizDetallesPedidoCliente } + +uses + uDataTableUtils; + + +constructor TBizDetallesPedidoCliente.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizDetallesPedidoCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_PEDIDO_CLIENTE, TBizDetallesPedidoCliente); + RegisterDataTableRules(BIZ_CLIENT_ARTICULOS_PEND_PEDIDO_CLIENTE, TBizPedidoClienteArticulosPend); + +end. diff --git a/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas new file mode 100644 index 00000000..799a94a3 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas @@ -0,0 +1,307 @@ +unit uBizPedidosCliente; + +interface + +uses + Classes, uDADataTable, uDAInterfaces, uROClasses, + schPedidosClienteClient_Intf, uDBSelectionListUtils, + uBizContactos, uBizDetallesPedidoCliente; + +const + BIZ_CLIENT_PEDIDO_CLIENTE = 'Client.PedidoCliente'; + BIZ_CLIENT_PEDIDO_CLIENTE_ARTICULOS_PENDIENTES_PEDIR_A_PROV = 'Client.PedidoClienteArticulosPendientesPedirAProv'; + + SITUACION_PEDIDO_PENDIENTE = 'PENDIENTE'; + SITUACION_PEDIDO_ENPROCESO = 'EN PROCESO'; + SITUACION_PEDIDO_SERVIDO = 'SERVIDO'; + +type + IBizPedidoCliente = interface(IPedidosCliente) + ['{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: IBizDetallesPedidoCliente; + procedure SetDetalles(Value: IBizDetallesPedidoCliente); + property Detalles: IBizDetallesPedidoCliente read GetDetalles write SetDetalles; + + procedure CalcularImporteTotal; + + function EsNuevo : Boolean; + function DarListaSituaciones: TStringList; + end; + + IBizPedidoClienteArticulosPendientesPedirAProv = interface(IPedidoCliente_ArticulosPendientesPedirAProv) + ['{00537EF7-363E-4A50-BA03-1C0B79D17D31}'] + end; + + + TBizPedidoCliente = class(TPedidosClienteDataTableRules, IBizPedidoCliente, ISeleccionable) + private + procedure CalcularBaseImponible; + procedure CalcularIVA; + protected + FSeleccionableInterface : ISeleccionable; + FCliente : IBizCliente; + FDetalles : IBizDetallesPedidoCliente; + FDetallesLink : TDADataSource; + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + + function GetDetalles: IBizDetallesPedidoCliente; + procedure SetDetalles(Value: IBizDetallesPedidoCliente); + + procedure SetFECHA_PEDIDOValue(const aValue: TDateTime); override; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); override; + procedure SetINCIDENCIASValue(const aValue: IROStrings); override; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure IniciarValoresPedidoNuevo; + + procedure IMPORTE_NETOOnChange(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: IBizDetallesPedidoCliente read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + + TBizPedidoClienteArticulosPendientesPedirAProv = class(TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules, IBizPedidoClienteArticulosPendientesPedirAProv) + end; + + +implementation + +uses + SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios, + uDataTableUtils, DateUtils, uDateUtils; + +{ TBizPedidoCliente } + +procedure TBizPedidoCliente.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 TBizPedidoCliente.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 TBizPedidoCliente.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizPedidoCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := Nil; + + with DataTable do + begin + FieldByName(fld_PedidosClienteIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_PedidosClienteIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_PedidosClienteDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_PedidosClienteIVA).OnChange := IVAOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +function TBizPedidoCliente.DarListaSituaciones: TStringList; +begin + Result := TStringList.Create; + with Result do + begin + Add(SITUACION_PEDIDO_PENDIENTE); + Add(SITUACION_PEDIDO_ENPROCESO); + Add(SITUACION_PEDIDO_SERVIDO); + end; +end; + +procedure TBizPedidoCliente.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizPedidoCliente.Destroy; +begin + FCliente := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizPedidoCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizPedidoCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizPedidoCliente.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPedidoCliente.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPedidoCliente.IniciarValoresPedidoNuevo; +begin + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + USUARIO := dmUsuarios.LoginInfo.Usuario; + FECHA_PEDIDO := DateOf(Date); + FECHA_PREVISTA_ENVIO := 0; + INCIDENCIAS_ACTIVAS := 0; + INCIDENCIAS := NIL; + REFERENCIA := ''; + SetFieldNull(DataTable, fld_PedidosClienteREF_TIENDA_WEB); + SITUACION := SITUACION_PEDIDO_PENDIENTE; +end; + +procedure TBizPedidoCliente.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizPedidoCliente.GetDetalles: IBizDetallesPedidoCliente; +begin + Result := FDetalles; +end; + +procedure TBizPedidoCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresPedidoNuevo; +end; + +procedure TBizPedidoCliente.SetCliente(AValue: IBizCliente); +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 + DataTable.Edit; + ID_CLIENTE := FCliente.ID; + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + end; + end; +end; + +procedure TBizPedidoCliente.SetDetalles(Value: IBizDetallesPedidoCliente); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizPedidoCliente.SetFECHA_PEDIDOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosClienteFECHA_PEDIDO) + else + inherited; +end; + +procedure TBizPedidoCliente.SetFECHA_PREVISTA_ENVIOValue( + const aValue: DateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosClienteFECHA_PREVISTA_ENVIO) + else + inherited; +end; + +procedure TBizPedidoCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_PedidosClienteID_FORMA_PAGO) + else + inherited; +end; + +procedure TBizPedidoCliente.SetINCIDENCIASValue(const aValue: IROStrings); +begin + if not Assigned(aValue) then + SetFieldNull(DataTable, fld_PedidosClienteINCIDENCIAS) + else + inherited; +end; + +function TBizPedidoCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizPedidoCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_PEDIDO_CLIENTE, TBizPedidoCliente); + RegisterDataTableRules(BIZ_CLIENT_PEDIDO_CLIENTE_ARTICULOS_PENDIENTES_PEDIR_A_PROV, TBizPedidoClienteArticulosPendientesPedirAProv); + +finalization + +end. + diff --git a/Source/Modulos/Pedidos de cliente/Model/uBizPedidosClienteServer.pas b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosClienteServer.pas new file mode 100644 index 00000000..bc9ca029 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosClienteServer.pas @@ -0,0 +1,78 @@ +unit uBizPedidosClienteServer; + +interface + +uses + schPedidosClienteServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_PEDIDOS_CLIENTE = 'Server.PedidosCliente'; + REF_PEDIDOS_CLIENTE = 'REF_PEDIDOS_CLIENTE'; + +type + TBizPedidosClienteServer = class(TPedidosClienteBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schPedidosClienteClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizPedidosClienteServer } + +procedure TBizPedidosClienteServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_PedidosClienteREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_PedidosClienteREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_PedidosClienteID_EMPRESA]; + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'ID_EMPRESA'], [REF_PEDIDOS_CLIENTE, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_PEDIDOS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_PEDIDOS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PEDIDOS_CLIENTE, TBizPedidosClienteServer); + +end. diff --git a/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.bdsgroup b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.bdsgroup new file mode 100644 index 00000000..f879c0cb --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.bdsgroup @@ -0,0 +1,27 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Articulos\Model\Articulos_model.bdsproj + ..\Articulos\Data\Articulos_data.bdsproj + ..\Articulos\Controller\Articulos_controller.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\PedidosCliente_model.bdsproj + Data\PedidosCliente_data.bdsproj + Controller\PedidosCliente_controller.bdsproj + Views\PedidosCliente_view.bdsproj + Base.bpl ControllerBase.bpl GUIBase.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl PedidosCliente_view.bpl + + + + diff --git a/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.config b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.bdsproj b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.bdsproj new file mode 100644 index 00000000..878997e9 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.bdsproj @@ -0,0 +1,495 @@ + + + + + + + + + + + + PedidosCliente_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 de cliente/Plugin/PedidosCliente_plugin.dpk b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.dpk new file mode 100644 index 00000000..6b852ef0 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.dpk @@ -0,0 +1,42 @@ +package PedidosCliente_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + PedidosCliente_controller, + PedidosCliente_view; + +contains + uPluginPedidosCliente in 'uPluginPedidosCliente.pas' {PluginPedidosCliente}; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.rc b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.res b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.res differ diff --git a/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.dfm new file mode 100644 index 00000000..bf265432 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.dfm @@ -0,0 +1,399 @@ +object PluginPedidosCliente: TPluginPedidosCliente + OldCreateOrder = True + DefaultAction = actPedidosCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Pedidos 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 actPedidosCliente: TAction + Category = 'Ventas' + Caption = 'Pedidos de cliente' + ImageIndex = 0 + OnExecute = actPedidosClienteExecute + end + object actInfPedidos: TAction + Category = 'Informes' + Caption = 'Informe pedidos' + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Ventas' + object PedidosdeCliente1: TMenuItem + Tag = 103 + Action = actPedidosCliente + end + end + object Informes1: TMenuItem + Tag = 15000 + Caption = 'Informes' + object Informepedidos1: TMenuItem + Tag = 101 + Action = actInfPedidos + 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/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas new file mode 100644 index 00000000..98866b55 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas @@ -0,0 +1,77 @@ +unit uPluginPedidosCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCPedidosCliente = interface(IInterface) + ['{4C4C1C6A-3CA8-4D81-B420-40F068BFF833}'] + end; + + TPluginPedidosCliente = class(TModuleController, IMCPedidosCliente) + actPedidosCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + PedidosdeCliente1: TMenuItem; + actInfPedidos: TAction; + Informes1: TMenuItem; + Informepedidos1: TMenuItem; + procedure actPedidosClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uPedidosClienteController, uBizPedidosCliente, uPedidosClienteViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginPedidosCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginPedidosCliente.actPedidosClienteExecute(Sender: TObject); +var + APedidosClienteController : IPedidosClienteController; + APedidosCliente : IBizPedidoCliente; + +begin + APedidosClienteController := TPedidosClienteController.Create; + APedidosCliente := (APedidosClienteController.BuscarTodos as IBizPedidoCliente); + APedidosClienteController.VerTodos(APedidosCliente); +end; + +constructor TPluginPedidosCliente.Create(AOwner: TComponent); +begin + inherited; + uPedidosClienteViewRegister.RegisterViews; +end; + +destructor TPluginPedidosCliente.Destroy; +begin + uPedidosClienteViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginPedidosCliente); + +finalization + UnRegisterModuleClass(TPluginPedidosCliente); + +end. diff --git a/Source/Modulos/Pedidos de cliente/Reports/uRptPedidosCliente_Server.dfm b/Source/Modulos/Pedidos de cliente/Reports/uRptPedidosCliente_Server.dfm new file mode 100644 index 00000000..c2919d88 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Reports/uRptPedidosCliente_Server.dfm @@ -0,0 +1,921 @@ +object RptPedidosCliente: TRptPedidosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '15' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = + 'SELECT'#10' V_PEDIDOS_CLIENTE.ID,'#10' V_PEDIDOS_CLIENTE.ID_EMPRESA,'#10' ' + + ' V_PEDIDOS_CLIENTE.ID_CLIENTE,'#10' V_PEDIDOS_CLIENTE.NOMBRE,'#10' V_C' + + 'LIENTES.NOMBRE_COMERCIAL,'#10' V_PEDIDOS_CLIENTE.REFERENCIA,'#10' V_PE' + + 'DIDOS_CLIENTE.SITUACION,'#10' V_PEDIDOS_CLIENTE.FECHA_PEDIDO,'#10' V_P' + + 'EDIDOS_CLIENTE.CALLE,'#10' V_PEDIDOS_CLIENTE.CODIGO_POSTAL,'#10' V_PED' + + 'IDOS_CLIENTE.POBLACION,'#10' V_PEDIDOS_CLIENTE.PROVINCIA,'#10' V_PEDID' + + 'OS_CLIENTE.PERSONA_CONTACTO,'#10' V_PEDIDOS_CLIENTE.TELEFONO,'#10' V_P' + + 'EDIDOS_CLIENTE.OBSERVACIONES,'#10' V_PEDIDOS_CLIENTE.INCIDENCIAS,'#10' ' + + ' V_PEDIDOS_CLIENTE.INCIDENCIAS_ACTIVAS,'#10' V_PEDIDOS_CLIENTE.FECH' + + 'A_ALTA,'#10' V_PEDIDOS_CLIENTE.FECHA_MODIFICACION,'#10' V_PEDIDOS_CLIE' + + 'NTE.USUARIO,'#10' V_PEDIDOS_CLIENTE.IMPORTE_NETO,'#10' V_PEDIDOS_CLIEN' + + 'TE.IMPORTE_PORTE,'#10' V_PEDIDOS_CLIENTE.DESCUENTO,'#10' V_PEDIDOS_CLI' + + 'ENTE.IMPORTE_DESCUENTO,'#10' V_PEDIDOS_CLIENTE.BASE_IMPONIBLE,'#10' V_' + + 'PEDIDOS_CLIENTE.IVA,'#10' V_PEDIDOS_CLIENTE.IMPORTE_IVA,'#10' V_PEDIDO' + + 'S_CLIENTE.IMPORTE_TOTAL,'#10' V_PEDIDOS_CLIENTE.ID_FORMA_PAGO,'#10' EM' + + 'PRESAS.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.TELEFONO_1 as TELEFO' + + 'NO_1_EMPRESA,'#10' EMPRESAS.FAX as FAX_EMPRESA'#10'FROM'#10' V_PEDIDOS_CLI' + + 'ENTE'#10' LEFT OUTER JOIN EMPRESAS ON (V_PEDIDOS_CLIENTE.ID_EMPRESA' + + ' = EMPRESAS.ID)'#10' LEFT OUTER JOIN V_CLIENTES ON (V_CLIENTES.ID =' + + ' V_PEDIDOS_CLIENTE.ID_CLIENTE)'#10'WHERE'#10' V_PEDIDOS_CLIENTE.ID = :I' + + 'D' + 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 = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + 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 = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'NOMBRE_EMPRESA' + TableField = 'NOMBRE_EMPRESA' + end + item + DatasetField = 'TELEFONO_1_EMPRESA' + TableField = 'TELEFONO_1_EMPRESA' + end + item + DatasetField = 'FAX_EMPRESA' + TableField = 'FAX_EMPRESA' + end + item + DatasetField = 'NOMBRE_COMERCIAL' + TableField = 'NOMBRE_COMERCIAL' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX_EMPRESA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'SELECT PEDIDOS_CLIENTE_DETALLES.ID, PEDIDOS_CLIENTE_DETALLES.ID_' + + 'PEDIDO,'#10' PEDIDOS_CLIENTE_DETALLES.POSICION, PEDIDOS_CLIENT' + + 'E_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_CLIENTE_DETALLES.CONCEPT' + + 'O, PEDIDOS_CLIENTE_DETALLES.CANTIDAD,'#10' PEDIDOS_CLIENTE_DET' + + 'ALLES.IMPORTE_UNIDAD, PEDIDOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ' + + ' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERENC' + + 'IA_PROV as REFERENCIA_PROVEEDOR'#10#10'FROM PEDIDOS_CLIENTE_DETALLES'#10'L' + + 'EFT JOIN ARTICULOS ON (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO = AR' + + 'TICULOS.ID)'#10'WHERE ID_PEDIDO = :ID_PEDIDO'#10'ORDER BY POSICION' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39226.524119641200000000 + 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);' + 'begin' + ' DireccionEnvio.Lines.Clear;' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39')' + ' or ( <> '#39#39') then' + + ' DireccionEnvio.Lines.Add( + ' + + ');' + '' + ' DireccionEnvio.Lines.Add();' + + '// DireccionEnvio.Lines.Add( ' + + '+ '#39' '#39' + );' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = <> + 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/Pedidos de cliente/Reports/uRptPedidosCliente_Server.pas b/Source/Modulos/Pedidos de cliente/Reports/uRptPedidosCliente_Server.pas new file mode 100644 index 00000000..df75f8ef --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Reports/uRptPedidosCliente_Server.pas @@ -0,0 +1,93 @@ +unit uRptPedidosCliente_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; + +type + TRptPedidosCliente = 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); + private + FConnection: IDAConnection; + public + function GenerarPedido(const AID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schPedidosClienteClient_Intf; + +const + rptInforme = 'InfPedidoCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptPedidosProveedor } + + +procedure TRptPedidosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptPedidosCliente.GenerarPedido(const AID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_PEDIDO'], [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 + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm new file mode 100644 index 00000000..97d35636 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm @@ -0,0 +1,2930 @@ +object srvPedidosCliente: TsrvPedidosCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schPedidosCliente + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 247 + Width = 347 + object schPedidosCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'ID_PEDIDO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT '#10' ID_PEDIDO, ID_ARTICULO, CANT_PEDIDA_CLIENTE, ID_PROV' + + 'EEDOR, '#10' CANT_PEDIDA_PROVEEDOR, CANT_PENDIENTE_PEDIR'#10' FROM'#10' ' + + ' V_PED_CLI_ART_PEND_PEDIR_PROV'#10' WHERE ID_PEDIDO = :ID_PEDIDO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'CANT_PEDIDA_CLIENTE' + TableField = 'CANT_PEDIDA_CLIENTE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'CANT_PEDIDA_PROVEEDOR' + TableField = 'CANT_PEDIDA_PROVEEDOR' + end + item + DatasetField = 'CANT_PENDIENTE_PEDIR' + TableField = 'CANT_PENDIENTE_PEDIR' + end> + end> + Name = 'PedidoCliente_ArticulosPendientesPedirAProv' + Fields = < + item + Name = 'ID_PEDIDO' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PEDIDA_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PEDIDA_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANT_PENDIENTE_PEDIR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PENDIENTE_PEDIR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + + 'IGO'#10'AND ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = + 'SELECT ID,'#10' ID_EMPRESA,'#10' ID_CLIENTE,'#10' NOMBRE,'#10 + + ' REFERENCIA,'#10' SITUACION,'#10' FECHA_PEDIDO,'#10' ' + + ' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' PROVINCIA' + + ','#10' PERSONA_CONTACTO,'#10' TELEFONO,'#10' OBSERVACIONES' + + ','#10' INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS,'#10' FECHA_A' + + 'LTA,'#10' FECHA_MODIFICACION,'#10' USUARIO,'#10' IMPORTE_N' + + 'ETO,'#10' IMPORTE_PORTE,'#10' DESCUENTO,'#10' IMPORTE_DESC' + + 'UENTO,'#10' BASE_IMPONIBLE,'#10' IVA,'#10' IMPORTE_IVA,'#10' ' + + ' IMPORTE_TOTAL,'#10' ID_FORMA_PAGO,'#10' REF_TIENDA_WEB,' + + #10' FECHA_PREVISTA_ENVIO'#10'FROM V_PEDIDOS_CLIENTE' + StatementType = stSQL + 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 = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + 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 = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + 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 = 'REF_TIENDA_WEB' + TableField = 'REF_TIENDA_WEB' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end> + end> + Name = 'PedidosCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'SELECT PEDIDOS_CLIENTE_DETALLES.ID,'#10' PEDIDOS_CLIENTE_DETAL' + + 'LES.ID_PEDIDO,'#10' PEDIDOS_CLIENTE_DETALLES.POSICION,'#10' ' + + 'PEDIDOS_CLIENTE_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_CLIENTE_DE' + + 'TALLES.ID_ARTICULO,'#10' ARTICULOS.REFERENCIA,'#10' ARTICULO' + + 'S.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' PEDIDOS_CLIENT' + + 'E_DETALLES.CONCEPTO,'#10' PEDIDOS_CLIENTE_DETALLES.CANTIDAD,'#10' ' + + ' PEDIDOS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' PEDIDOS_CL' + + 'IENTE_DETALLES.DESCUENTO,'#10' PEDIDOS_CLIENTE_DETALLES.IMPORT' + + 'E_PORTE,'#10' PEDIDOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' P' + + 'EDIDOS_CLIENTE_DETALLES.VISIBLE'#10'FROM PEDIDOS_CLIENTE_DETALLES'#10' ' + + ' LEFT JOIN ARTICULOS ON PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO =' + + ' ARTICULOS.ID'#10'WHERE'#10' PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO = :I' + + 'D_PEDIDO'#10'ORDER BY POSICION;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'PedidosCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = + 'SELECT ID,'#10' ID_EMPRESA,'#10' ID_CLIENTE,'#10' NOMBRE,'#10 + + ' REFERENCIA,'#10' SITUACION,'#10' FECHA_PEDIDO,'#10' ' + + ' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' PROVINCIA' + + ','#10' PERSONA_CONTACTO,'#10' TELEFONO,'#10' OBSERVACIONES' + + ','#10' INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS,'#10' FECHA_A' + + 'LTA,'#10' FECHA_MODIFICACION,'#10' USUARIO,'#10' IMPORTE_N' + + 'ETO,'#10' IMPORTE_PORTE,'#10' DESCUENTO,'#10' IMPORTE_DESC' + + 'UENTO,'#10' BASE_IMPONIBLE,'#10' IVA,'#10' IMPORTE_IVA,'#10' ' + + ' IMPORTE_TOTAL,'#10' ID_FORMA_PAGO,'#10' REF_TIENDA_WEB,' + + #10' FECHA_PREVISTA_ENVIO'#10'FROM V_PEDIDOS_CLIENTE'#10'WHERE'#10' I' + + 'D = :ID' + StatementType = stSQL + 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 = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + 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 = 'REFERENCIA' + TableField = 'REFERENCIA' + 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 = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + 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 = 'REF_TIENDA_WEB' + TableField = 'REF_TIENDA_WEB' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end> + end> + Name = 'PedidosCliente_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Situaci'#243'n' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_CALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_CODIGO_POSTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_POBLACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_PROVINCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_PERSONA_CONTACTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_TELEFONO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_INCIDENCIAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_INCIDENCIAS_ACTIVAS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_NETO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_BASE_IMPONIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_ID_FORMA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_FECHA_PREVISTA_ENVIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'SELECT PEDIDOS_CLIENTE_DETALLES.ID,'#10' PEDIDOS_CLIENTE_DETAL' + + 'LES.ID_PEDIDO,'#10' PEDIDOS_CLIENTE_DETALLES.POSICION,'#10' ' + + 'PEDIDOS_CLIENTE_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_CLIENTE_DE' + + 'TALLES.ID_ARTICULO,'#10' ARTICULOS.REFERENCIA,'#10' ARTICULO' + + 'S.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' PEDIDOS_CLIENT' + + 'E_DETALLES.CONCEPTO,'#10' PEDIDOS_CLIENTE_DETALLES.CANTIDAD,'#10' ' + + ' PEDIDOS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' PEDIDOS_CL' + + 'IENTE_DETALLES.DESCUENTO,'#10' PEDIDOS_CLIENTE_DETALLES.IMPORT' + + 'E_PORTE,'#10' PEDIDOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' P' + + 'EDIDOS_CLIENTE_DETALLES.VISIBLE'#10'FROM PEDIDOS_CLIENTE_DETALLES'#10' ' + + ' LEFT JOIN ARTICULOS ON PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO =' + + ' ARTICULOS.ID'#10'WHERE'#10' PEDIDOS_CLIENTE_DETALLES.ID_PEDIDO = :I' + + 'D_PEDIDO'#10' AND PEDIDOS_CLIENTE_DETALLES.ID = :ID'#10'ORDER BY POSICIO' + + 'N;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + 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_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end> + end> + Name = 'PedidosCliente_Detalles_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID_PEDIDO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'POSICIONCONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_TIPO_DETALLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_ID_ARTICULO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_CONCEPTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'CANTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_UNIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_DESCUENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_PORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_VISIBLE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PED_CLI_ARTICULOS' + SQL = + 'SELECT ID_ARTICULO,'#10' CANTIDAD_PEDIDA AS CANTIDAD_PED,'#10' ' + + ' CANTIDAD_RESERVADA + CANTIDAD_ENVIADA + CANTIDAD_SERVIDA AS C' + + 'ANTIDAD_ALB,'#10' CANTIDAD_PENDIENTE'#10'FROM V_PED_CLI_ARTICULOS'#10 + + 'WHERE ID_PEDIDO = :ID_PEDIDO AND'#10' CANTIDAD_PENDIENTE > 0' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'CANTIDAD_PED' + TableField = 'CANTIDAD_PED' + end + item + DatasetField = 'CANTIDAD_ALB' + TableField = 'CANTIDAD_ALB' + end + item + DatasetField = 'CANTIDAD_PENDIENTE' + TableField = 'CANTIDAD_PENDIENTE' + end> + end> + Name = 'PedidoCliente_Articulos_Pendientes' + Fields = < + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_ID_ARTICULO' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_PED' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PED' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_ALB' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_ALB' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD_PENDIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PENDIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO PEDIDOS_CLIENTE_DETALLES'#10' (CANTIDAD, POSICION, ' + + 'ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL,' + + ' VISIBLE, ID_PEDIDO,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_PORTE)' + + #10' VALUES'#10' (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CONCEP' + + 'TO, '#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_PEDIDO,' + + ' '#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' PEDIDOS_CLIENTE_DETALLES'#10' WHERE'#10' (ID = :O' + + 'LD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PedidosCliente_Detalles' + end + item + Params = < + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POSICION' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE_DETALLES' + SQL = + 'UPDATE PEDIDOS_CLIENTE_DETALLES'#10' SET '#10' CANTIDAD = :CANTIDAD,' + + ' '#10' POSICION = :POSICION, '#10' ID = :ID, '#10' TIPO_DETALLE = :' + + 'TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' IMPORTE_UNIDAD = :' + + 'IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' VISIBL' + + 'E = :VISIBLE, '#10' ID_PEDIDO = :ID_PEDIDO, '#10' ID_ARTICULO = :I' + + 'D_ARTICULO,'#10' DESCUENTO = :DESCUENTO,'#10' IMPORTE_PORTE = :IMP' + + 'ORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REF_TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = + 'INSERT'#10' INTO PEDIDOS_CLIENTE'#10' (ID, ID_EMPRESA, ID_CLIENTE, U' + + 'SUARIO, FECHA_PEDIDO, '#10' CALLE, CODIGO_POSTAL, POBLACION, PRO' + + 'VINCIA, PERSONA_CONTACTO, '#10' TELEFONO, REFERENCIA, IMPORTE_TO' + + 'TAL, INCIDENCIAS, INCIDENCIAS_ACTIVAS, '#10' OBSERVACIONES, FECH' + + 'A_ALTA, FECHA_MODIFICACION,'#10' IMPORTE_NETO, IMPORTE_PORTE, DE' + + 'SCUENTO,'#10' IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IV' + + 'A, '#10' ID_FORMA_PAGO, REF_TIENDA_WEB, FECHA_PREVISTA_ENVIO)'#10' ' + + 'VALUES'#10' (:ID, :ID_EMPRESA, :ID_CLIENTE, :USUARIO, :FECHA_PEDI' + + 'DO, '#10' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, :PERSO' + + 'NA_CONTACTO, '#10' :TELEFONO, :REFERENCIA, :IMPORTE_TOTAL, :INCI' + + 'DENCIAS, '#10' :INCIDENCIAS_ACTIVAS, :OBSERVACIONES, :FECHA_ALTA' + + ','#10' :FECHA_MODIFICACION, :IMPORTE_NETO, :IMPORTE_PORTE,'#10' ' + + ':DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIBLE, :IVA, '#10' :IM' + + 'PORTE_IVA, :ID_FORMA_PAGO, :REF_TIENDA_WEB, :FECHA_PREVISTA_ENVI' + + 'O)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosCliente' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' PEDIDOS_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PedidosCliente' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_NETO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_PORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BASE_IMPONIBLE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE_IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REF_TIENDA_WEB' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_CLIENTE' + SQL = + 'UPDATE PEDIDOS_CLIENTE'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + + 'ID_CLIENTE = :ID_CLIENTE, '#10' USUARIO = :USUARIO, '#10' FECHA_PE' + + 'DIDO = :FECHA_PEDIDO, '#10' CALLE = :CALLE, '#10' CODIGO_POSTAL = ' + + ':CODIGO_POSTAL, '#10' POBLACION = :POBLACION, '#10' PROVINCIA = :P' + + 'ROVINCIA, '#10' PERSONA_CONTACTO = :PERSONA_CONTACTO, '#10' TELEFO' + + 'NO = :TELEFONO, '#10' REFERENCIA = :REFERENCIA, '#10' IMPORTE_TOTA' + + 'L = :IMPORTE_TOTAL, '#10' INCIDENCIAS = :INCIDENCIAS, '#10' INCIDE' + + 'NCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS, '#10' OBSERVACIONES = :OBSE' + + 'RVACIONES, '#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION' + + ' = :FECHA_MODIFICACION,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10' IM' + + 'PORTE_PORTE = :IMPORTE_PORTE, '#10' DESCUENTO = :DESCUENTO, '#10' ' + + 'IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE = :B' + + 'ASE_IMPONIBLE, '#10' IVA = :IVA, '#10' IMPORTE_IVA = :IMPORTE_IVA,' + + ' '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' REF_TIENDA_WEB = :REF_' + + 'TIENDA_WEB,'#10' FECHA_PREVISTA_ENVIO = :FECHA_PREVISTA_ENVIO'#10' W' + + 'HERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosCliente' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert PedidosCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PedidosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert PedidosCliente_Detalles' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PedidosCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PedidosCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PedidosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PedidosCliente_Detalles' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PedidosCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PedidosCliente_Detalles' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PedidosCliente_Detalles' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PedidosCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PedidosCliente' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object bpPedidosCliente: TDABusinessProcessor + Schema = schPedidosCliente + InsertCommandName = 'Insert_PedidosCliente' + DeleteCommandName = 'Delete_PedidosCliente' + UpdateCommandName = 'Update_PedidosCliente' + RefreshDatasetName = 'PedidosCliente_Refresh' + ReferencedDataset = 'PedidosCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 24 + end + object bpPedidosCliente_Detalles: TDABusinessProcessor + Schema = schPedidosCliente + InsertCommandName = 'Insert_PedidosCliente_Detalles' + DeleteCommandName = 'Delete_PedidosCliente_Detalles' + UpdateCommandName = 'Update_PedidosCliente_Detalles' + RefreshDatasetName = 'PedidosCliente_Detalles_Refresh' + ReferencedDataset = 'PedidosCliente_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 80 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'PedidosCliente_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Nombre del cliente' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_FECHA_PEDIDO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha pedido' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_CALLE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Calle' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'd. postal' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_POBLACION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Poblaci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_PROVINCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Provincia' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_PERSONA_CONTACTO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Persona de contacto' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_TELEFONO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tel'#233'fono' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_OBSERVACIONES' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_INCIDENCIAS' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_INCIDENCIAS_ACTIVAS' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_IMPORTE_NETO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_BASE_IMPONIBLE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_IMPORTE_IVA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_ID_FORMA_PAGO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FORMA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_ID' + DataType = datAutoInc + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_ID_PEDIDO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'POSICION' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TIPO_DETALLE' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONCEPTO' + Alignment = taLeftJustify + end + item + Name = 'CANTIDAD' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_Detalles_DESCUENTO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'PedidosCliente_Detalles_VISIBLE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'VISIBLE' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. proveedor' + Alignment = taLeftJustify + end + item + Name = 'PedidoCliente_Articulos_Pendientes_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PED' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad en pedido' + Alignment = taRightJustify + end + item + Name = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_ALB' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad en albaranes' + Alignment = taRightJustify + end + item + Name = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PENDIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cantidad pendiente' + Alignment = taRightJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_ID_PEDIDO' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PEDIDO' + Alignment = taLeftJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_ID_ARTICULO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_ARTICULO' + Alignment = taLeftJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pedida por cliente' + Alignment = taLeftJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_PROVEEDOR' + Alignment = taLeftJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pedida a proveedor' + Alignment = taLeftJustify + end + item + Name = 'DarArticulosPendientesPedirAProv_CANT_PENDIENTE_PEDIR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cant. pendiente pedir' + Alignment = taLeftJustify + end + item + Name = 'PedidosCliente_FECHA_PREVISTA_ENVIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha de entrega prevista' + Alignment = taLeftJustify + end> + Left = 48 + Top = 152 + end +end diff --git a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.pas b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.pas new file mode 100644 index 00000000..e1b14f3f --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.pas @@ -0,0 +1,106 @@ +unit srvPedidosCliente_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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvPedidosProveedor } + TsrvPedidosCliente = class(TDARemoteService, IsrvPedidosProveedor) + DABINAdapter: TDABINAdapter; + bpPedidosCliente: TDABusinessProcessor; + bpPedidosCliente_Detalles: TDABusinessProcessor; + schPedidosCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvPedidosProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schPedidosClienteClient_Intf, uRestriccionesUsuarioUtils, + uRptPedidosCliente_Server, uBizPedidosClienteServer; + +procedure Create_srvPedidosProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvPedidosCliente.Create(NIL); +end; + +{ srvPedidosProveedor } +procedure TsrvPedidosCliente.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvPedidosCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_PedidosCliente then + begin + { Aquí se asegura que el usuario sólo accede a pedidos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schPedidosCliente, DataSet, fld_PedidosClienteID_EMPRESA); + end; +end; + +procedure TsrvPedidosCliente.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; + bpPedidosCliente.BusinessRulesID := BIZ_SERVER_PEDIDOS_CLIENTE; +end; + +function TsrvPedidosCliente.GenerateReport(const ID: Integer): Binary; +var + AReportGenerator : TRptPedidosCliente; +begin + AReportGenerator := TRptPedidosCliente.Create(nil); + try + Result := AReportGenerator.GenerarPedido(ID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPedidosCliente.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +initialization + TROClassFactory.Create('srvPedidosCliente', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.bdsproj b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.bdsproj new file mode 100644 index 00000000..c5dacc4d --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/Presupuestos_Test.dpr b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.dpr new file mode 100644 index 00000000..5b596879 --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/Presupuestos_Test.drc b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.res b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.res new file mode 100644 index 00000000..37a3dbd7 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Test/Presupuestos_Test.res differ diff --git a/Source/Modulos/Pedidos de cliente/Test/uDataModulePresupuestos_Test.pas b/Source/Modulos/Pedidos de cliente/Test/uDataModulePresupuestos_Test.pas new file mode 100644 index 00000000..b054a7ca --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/uHostMainForm.dfm b/Source/Modulos/Pedidos de cliente/Test/uHostMainForm.dfm new file mode 100644 index 00000000..1de986c4 --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/uHostMainForm.pas b/Source/Modulos/Pedidos de cliente/Test/uHostMainForm.pas new file mode 100644 index 00000000..50f4b46e --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/uPluginPresupuestos_Test.pas b/Source/Modulos/Pedidos de cliente/Test/uPluginPresupuestos_Test.pas new file mode 100644 index 00000000..e8df46e1 --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Test/uPresupuestosController_Test.pas b/Source/Modulos/Pedidos de cliente/Test/uPresupuestosController_Test.pas new file mode 100644 index 00000000..e5e483c4 --- /dev/null +++ b/Source/Modulos/Pedidos 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/Pedidos de cliente/Views/Contactos_data.drc b/Source/Modulos/Pedidos de cliente/Views/Contactos_data.drc new file mode 100644 index 00000000..09081cc2 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/Contactos_data.drc @@ -0,0 +1,21 @@ +/* VER180 + Generated by the Borland 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. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */ + "\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */ + "\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */ + "\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */ + "\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */ + "\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */ + "\x53", "\x00", "\x00", "\x00" /* 0030: S... */ +END + diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.bdsproj b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.bdsproj new file mode 100644 index 00000000..d24131f9 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.bdsproj @@ -0,0 +1,494 @@ + + + + + + + + + + + + PedidosCliente_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 + + + Intraweb 8.0 Design Package for Borland Development Studio 2006 + + + + diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk new file mode 100644 index 00000000..9725be68 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk @@ -0,0 +1,113 @@ +package PedidosCliente_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, + dbrtl, + vcldb, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxExtEditorsD10, + vclx, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + frx10, + fs10, + fqb100, + bdertl, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + GUIBase, + Contactos_model, + Contactos_view, + DataAbstract_D10, + Empresas_controller, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + PedidosCliente_controller, + PedidosCliente_data, + PedidosCliente_model, + JvGlobusD10R, + VclSmp, + vclie, + Articulos_view, + dxLayoutControlD10, + FormasPago_model, + FormasPago_controller, + AlbaranesCliente_model, + AlbaranesCliente_controller, + FacturasCliente_model, + FacturasCliente_controller, + PedCli_PedProv_relation, + PedCli_AlbCli_relation; + +contains + uPedidosClienteViewRegister in 'uPedidosClienteViewRegister.pas', + uEditorPedidosCliente in 'uEditorPedidosCliente.pas' {fEditorPedidosCliente: TfEditorPedidosCliente}, + uViewPedidosCliente in 'uViewPedidosCliente.pas' {frViewPedidosCliente: TFrame}, + uViewPedidoCliente in 'uViewPedidoCliente.pas' {frViewPedidoCliente: TFrame}, + uEditorPedidoCliente in 'uEditorPedidoCliente.pas' {fEditorPedidoCliente: TfEditorPedidoCliente}, + uViewDetallesPedidoCliente in 'uViewDetallesPedidoCliente.pas' {frViewDetallesPedidoCliente: TFrame}, + uEditorElegirPedidosCliente in 'uEditorElegirPedidosCliente.pas' {fEditorElegirPedidosCliente: TfEditorElegirPedidosCliente}, + uViewElegirArticulosPedidosCliente in 'uViewElegirArticulosPedidosCliente.pas' {frViewElegirArticulosPedidosCliente: TFrame}, + uEditorElegirArticulosPedidoCliente in 'uEditorElegirArticulosPedidoCliente.pas' {fEditorElegirArticulosPedidoCliente: TfEditorElegirArticulosPedidoCliente}, + uViewDireccionEntregaPedidoCliente in 'uViewDireccionEntregaPedidoCliente.pas' {frViewDireccionEntregaPedidoCliente: TFrame}, + uEditorPedidosClienteReport in 'uEditorPedidosClienteReport.pas' {fEditorPedidosClientePreview: TfEditorPedidosClientePreview}; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.rc b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.res b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.res differ diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.dfm new file mode 100644 index 00000000..b8fd6af9 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosPedidoCliente: TfEditorElegirArticulosPedidoCliente + Caption = 'fEditorElegirArticulosPedidoCliente' + ExplicitWidth = 320 + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.pas new file mode 100644 index 00000000..12409d4a --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirArticulosPedidoCliente.pas @@ -0,0 +1,33 @@ +unit uEditorElegirArticulosPedidoCliente; + +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, + JvgWizardHeader, uIEditorElegirArticulosPedidosCliente; + +type + TfEditorElegirArticulosPedidoCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosPedidosCliente) + protected + procedure AsignarVista; override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosPedidosCliente; + +{ TfEditorElegirArticulosPedidoCliente } + +procedure TfEditorElegirArticulosPedidoCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosPedidosCliente) as IViewElegirArticulosPedidosCliente; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorElegirPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirPedidosCliente.dfm new file mode 100644 index 00000000..153fdd6f --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirPedidosCliente.dfm @@ -0,0 +1,200 @@ +inherited fEditorElegirPedidosCliente: TfEditorElegirPedidosCliente + Caption = 'Seleccionar pedido de cliente' + ClientWidth = 656 + ExplicitWidth = 664 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 27 + Width = 656 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione el pedido de cliente') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = 8 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + Visible = False + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 656 + Height = 49 + ExplicitTop = 87 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXItem43: 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 + Left = 117 + Top = 23 + DockPos = 104 + DockRow = 1 + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 389 + 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 = 389 + 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 + inherited actGenerarPedidoProv: 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 + 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 de cliente/Views/uEditorElegirPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirPedidosCliente.pas new file mode 100644 index 00000000..cc7efcb9 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorElegirPedidosCliente.pas @@ -0,0 +1,128 @@ +unit uEditorElegirPedidosCliente; + +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, + uViewPedidosCliente, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, JvgWizardHeader, StdCtrls, + uEditorPedidosCliente, uBizPedidosCliente, uIEditorElegirPedidosCliente, + JvExComCtrls, JvStatusBar, JSDialog; + +type + TfEditorElegirPedidosCliente = class(TfEditorPedidosCliente, IEditorElegirPedidosCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + 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 GetPedidosClienteSeleccionados: IBizPedidoCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property PedidosClienteSeleccionados: IBizPedidoCliente read GetPedidosClienteSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridUtils, uEditorBase, uPedidosClienteController, + cxGridLevel; + +{$R *.dfm} + +{ TfEditorElegirPedidosCliente } + +procedure TfEditorElegirPedidosCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirPedidosCliente.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirPedidosCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirPedidosCliente.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirPedidosCliente.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirPedidosCliente.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirPedidosCliente.GetPedidosClienteSeleccionados: IBizPedidoCliente; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IPedidosClienteController).ExtraerSeleccionados(Pedidos) as IBizPedidoCliente; +end; + +function TfEditorElegirPedidosCliente.GetMensaje: String; +begin + Result := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirPedidosCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirPedidosCliente.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := AValue; +end; + +procedure TfEditorElegirPedidosCliente.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirPedidosCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + //Para que no salgan las pestañas de filtrado + ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.dfm new file mode 100644 index 00000000..31e74690 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.dfm @@ -0,0 +1,482 @@ +inherited fEditorPedidoCliente: TfEditorPedidoCliente + Left = 332 + Top = 147 + Caption = 'Nuevo pedido de cliente' + ClientHeight = 608 + ClientWidth = 632 + OnClose = CustomEditorClose + ExplicitWidth = 640 + ExplicitHeight = 642 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Nuevo pedido de cliente' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 605 + 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 + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 482 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 632 + end + end + inherited pgPaginas: TPageControl + Width = 632 + Height = 442 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 632 + ExplicitHeight = 442 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 624 + ExplicitHeight = 414 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesPedidoCliente1: TfrViewDetallesPedidoCliente + Left = 0 + Top = 0 + Width = 624 + Height = 414 + 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 = 624 + ExplicitHeight = 414 + inherited ToolBar1: TToolBar + Width = 624 + ExplicitWidth = 624 + end + inherited cxGrid: TcxGrid + Width = 624 + Height = 342 + ExplicitWidth = 624 + ExplicitHeight = 342 + end + inherited TBXDock1: TTBXDock + Width = 624 + ExplicitWidth = 624 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 548 + end + 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 = 624 + Height = 414 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 624 + ExplicitHeight = 414 + inherited pnlSup: TPanel + Width = 624 + ExplicitWidth = 624 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 624 + Height = 386 + ExplicitWidth = 624 + ExplicitHeight = 386 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 601 + ExplicitHeight = 353 + Height = 353 + Width = 601 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 589 + Width = 632 + Panels = < + item + Width = 200 + end> + ExplicitTop = 589 + ExplicitWidth = 632 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 518 + Width = 632 + Height = 71 + 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 = 632 + ExplicitHeight = 71 + inherited dxLayoutControl1: TdxLayoutControl + Width = 632 + Height = 171 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 632 + ExplicitHeight = 171 + inherited Bevel1: TBevel + Left = 93 + Top = 92 + Width = 73 + ExplicitLeft = 93 + ExplicitTop = 92 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 313 + Top = 11 + Width = 8 + Height = 54 + ExplicitLeft = 313 + ExplicitTop = 11 + ExplicitWidth = 8 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 430 + Top = 92 + Width = 21 + ExplicitLeft = 430 + ExplicitTop = 92 + ExplicitWidth = 21 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 164 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 164 + ExplicitTop = 112 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 501 + Top = 38 + Style.IsFontAssigned = True + ExplicitLeft = 501 + ExplicitTop = 38 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 431 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 431 + ExplicitTop = 112 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 93 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 112 + end + inherited edtIVA: TcxDBSpinEdit + Left = 430 + Top = 38 + Style.IsFontAssigned = True + ExplicitLeft = 430 + ExplicitTop = 38 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 430 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 430 + ExplicitTop = 11 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 430 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 430 + ExplicitTop = 65 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 501 + Top = 65 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.IsFontAssigned = True + ExplicitLeft = 501 + ExplicitTop = 65 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 93 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 11 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 93 + Top = 139 + Style.IsFontAssigned = True + ExplicitLeft = 93 + ExplicitTop = 139 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 93 + Top = 38 + DataBinding.DataField = '' + DataBinding.DataSource = nil + ExplicitLeft = 93 + ExplicitTop = 38 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 165 + Top = 38 + ExplicitLeft = 165 + ExplicitTop = 38 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 93 + Top = 65 + DataBinding.DataField = '' + ExplicitLeft = 93 + ExplicitTop = 65 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + 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/Pedidos de cliente/Views/uEditorPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.pas new file mode 100644 index 00000000..0658ff46 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.pas @@ -0,0 +1,322 @@ +unit uEditorPedidoCliente; + +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, + uPedidosClienteController, + uViewDetallesBase, uViewDetallesPedidoCliente, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorPedidoCliente, uBizPedidosCliente, uViewPedidoCliente, + uViewDetallesDTO, uViewDetallesArticulos; + +type + TfEditorPedidoCliente = class(TfEditorDBItem, IEditorPedidoCliente) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesPedidoCliente1: TfrViewDetallesPedidoCliente; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); override; + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure actEliminarUpdate(Sender: TObject); + + protected + FPedido: IBizPedidoCliente; + FViewPedido: IViewPedidoCliente; + FController : IPedidosClienteController; + + function GetController : IPedidosClienteController; + procedure SetController (const Value : IPedidosClienteController); virtual; + + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); virtual; + + function GetViewPedido: IViewPedidoCliente; + procedure SetViewPedido(const Value: IViewPedidoCliente); + + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + property ViewPedido: IViewPedidoCliente read GetViewPedido write SetViewPedido; + + 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; + public + property Controller : IPedidosClienteController read GetController write SetController; + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, + uBizDireccionesContacto, uDialogUtils; + +{$R *.dfm} + +{ TfEditorPedidoCliente } + +{ +**************************** TfEditorPedidoCliente **************************** +} +procedure TfEditorPedidoCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + (FPedido.SITUACION = SITUACION_PEDIDO_PENDIENTE); +end; + +procedure TfEditorPedidoCliente.AsignarVista; +var + AViewPedidoCliente: TfrViewPedidoCliente; + +begin + AViewPedidoCliente := TfrViewPedidoCliente.create(Self); + with AViewPedidoCliente do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewPedido := AViewPedidoCliente; +end; + +constructor TfEditorPedidoCliente.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + + AsignarVista; +end; + +procedure TfEditorPedidoCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + FViewPedido := NIL; + FPedido := NIL; +end; + +destructor TfEditorPedidoCliente.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorPedidoCliente.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este pedido de cliente?', '') = IDYES) then + begin + FController.Eliminar(FPedido); + inherited + end +end; + +procedure TfEditorPedidoCliente.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 ningún pedido asignado'); + + Pedido.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +function TfEditorPedidoCliente.GetController: IPedidosClienteController; +begin + Result := FController; +end; + +function TfEditorPedidoCliente.GetPedido: IBizPedidoCliente; +begin + Result := FPedido; +end; + +function TfEditorPedidoCliente.GetViewPedido: IViewPedidoCliente; +begin + Result := FViewPedido; +end; + +procedure TfEditorPedidoCliente.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + bEsNuevo := False; + + ShowHourglassCursor; +// frViewDetallesPedidoCliente1.SaveGridStatus; + frViewDetallesPedidoCliente1.BeginUpdate; + try + bEsNuevo := FPedido.EsNuevo; + FController.Guardar(FPedido); + finally + frViewDetallesPedidoCliente1.EndUpdate; +// frViewDetallesPedidoCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + ShowInfoMessage('El pedido se ha dado de alta con el código ' + FPedido.REFERENCIA); + + Modified := False; +end; + +procedure TfEditorPedidoCliente.ImprimirInterno; +begin + inherited; + if not Modified then + FController.Print(FPedido); +end; + +procedure TfEditorPedidoCliente.OnClienteChanged(Sender: TObject); +var + AClientesController : IClientesController; + ADireccion : IBizDireccionesContacto; +begin + if Assigned(FPedido) then + begin + FPedido.Cliente := ViewPedido.ViewClientePedido.Cliente; + + AClientesController := TClientesController.Create; + try + if not AClientesController.TieneDatosBancarios(FPedido.Cliente) then + MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + + case FPedido.Cliente.Direcciones.RecordCount of + 0 : begin + FController.QuitarDireccionEnvio(FPedido); + MessageBox(0, '¡Atención! Este cliente no tiene ' + #10#13 + 'ninguna dirección de envío en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + FPedido.Edit; + FPedido.IMPORTE_PORTE := 0; + end; + 1 : begin + FController.CopiarDireccionEnvio(FPedido.Cliente.Direcciones, FPedido); + FPedido.Edit; + FPedido.IMPORTE_PORTE := FPedido.Cliente.Direcciones.PORTE; + end + else begin + ADireccion := AClientesController.ElegirDireccionEntrega(FPedido.Cliente.Direcciones, ''); + try + if Assigned(ADireccion) then + begin + FController.CopiarDireccionEnvio(ADireccion, FPedido); + FPedido.Edit; + FPedido.IMPORTE_PORTE := ADireccion.PORTE; + end; + finally + ADireccion := NIL; + end; + end; + end; + + // Si el pedido tiene detalles hay que mirar si los descuentos y otros campos + // para los artículos hay que cambiarlos. + if (FPedido.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FPedido.Detalles, FPedido.Cliente); + + finally + AClientesController := NIL; + end; + end; +end; + +procedure TfEditorPedidoCliente.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +begin + inherited; + if (not Assigned(FPedido)) or (FPedido.ID_CLIENTE = 0) then + begin + ShowWarningMessage('Antes de introducir conceptos debe elegir un cliente para este pedido'); + AllowChange := False; + end; +end; + +procedure TfEditorPedidoCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FPedido) then + begin + if FPedido.EsNuevo then + FTitulo := 'Nuevo pedido de cliente' + else + FTitulo := 'Pedido de cliente' + ' - ' + FPedido.Cliente.Nombre + ' - ' + FPedido.SITUACION; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorPedidoCliente.PrevisualizarInterno; +begin + inherited; + if not Modified then + FController.Preview(FPedido); +end; + +procedure TfEditorPedidoCliente.SetController(const Value: IPedidosClienteController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewPedido.ViewClientePedido.Controller := Controller.ClienteController; + frViewDetallesPedidoCliente1.Controller := Controller.DetallesController; + end; +end; + +procedure TfEditorPedidoCliente.SetPedido(const Value: IBizPedidoCliente); +begin + FPedido := Value; + + if Assigned(FPedido) then + begin + dsDataTable.DataTable := FPedido.DataTable; + frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable; + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; + if Assigned(FViewPedido) then + begin + FViewPedido.Pedido := FPedido; + ViewPedido.ViewClientePedido.Cliente := FPedido.Cliente; + ViewPedido.ViewClientePedido.OnClienteChanged := OnClienteChanged; + frViewDetallesPedidoCliente1.Detalles := FPedido.Detalles; + frViewDetallesPedidoCliente1.Pedido := FPedido; //Para poder sacar los descuento del articulos segun el cliente seleccionado + end; + end; +end; + +procedure TfEditorPedidoCliente.SetViewPedido(const Value: IViewPedidoCliente); +begin + FViewPedido := Value; + + if Assigned(FViewPedido) and Assigned(Pedido) then + FViewPedido.Pedido := Pedido; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm new file mode 100644 index 00000000..21386e88 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm @@ -0,0 +1,2823 @@ +inherited fEditorPedidosCliente: TfEditorPedidosCliente + Caption = 'Lista de pedidos de cliente' + ClientWidth = 674 + ExplicitWidth = 682 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 674 + Caption = 'Lista de pedidos de cliente' + ExplicitWidth = 674 + inherited Image1: TImage + Left = 647 + 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 = 674 + ExplicitWidth = 674 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 674 + object TBXSeparatorItem18: TTBXSeparatorItem [8] + end + object TBXItem43: TTBXItem [9] + Action = actGenerar + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 674 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem39: TTBXItem + Action = actGenerarAlbaranCli + end + object TBXItem38: TTBXItem + Action = actGenerarFactura + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + end + end + end + inherited StatusBar: TJvStatusBar + Width = 674 + ExplicitWidth = 674 + 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 de cliente' + Enabled = False + ImageIndex = 24 + Visible = False + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + end + object actGenerarPedidoProv: TAction + Category = 'Acciones' + Caption = 'Generar pedido a proveedor' + ImageIndex = 25 + OnExecute = actGenerarPedidoProvExecute + end + object actGenerar: TAction + Category = 'Acciones' + Caption = 'Generar...' + ImageIndex = 26 + OnExecute = actGenerarExecute + OnUpdate = actGenerarUpdate + 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> + 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 Generar2: TMenuItem [6] + Action = actGenerar + end + object N4: TMenuItem [7] + Caption = '-' + 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 pedido...' + 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 pedido. Solo se' + + ' tendr'#225'n en cuenta aquellos art'#237'culos que existan en el cat'#225'logo' + + ' y sean inventariables.' + '') + end + item + Caption = 'Generar uno o m'#225's pedidos a proveedor' + Value = 200 + Info.Strings = ( + + 'Generar pedidos a los proveedores con los art'#237'culos de este pedi' + + 'do que existan en el cat'#225'logo y sean inventariables.') + 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 pedido seleccionado' + 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 seleccionado' + 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 +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas new file mode 100644 index 00000000..12d7485d --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas @@ -0,0 +1,308 @@ +unit uEditorPedidosCliente; + +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, + uBizPedidosCliente, uIEditorPedidosCliente, uPedidosClienteController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewPedidosCliente, JvExComCtrls, JvStatusBar, JSDialog, StdCtrls; + +type + TfEditorPedidosCliente = class(TfEditorGridBase, IEditorPedidosCliente) + actGenerarAlbaranCli: TAction; + actGenerarFactura: TAction; + actGenerarPedidoProv: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + N4: TMenuItem; + TBXSeparatorItem18: TTBXSeparatorItem; + actGenerar: TAction; + TBXItem43: TTBXItem; + Generar2: TMenuItem; + JsGenerarDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actGenerarAlbaranCliExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actGenerarPedidoProvExecute(Sender: TObject); + procedure actGenerarExecute(Sender: TObject); + procedure actGenerarUpdate(Sender: TObject); + + protected + FPedidos: IBizPedidoCliente; + FController : IPedidosClienteController; + + function GetPedidos: IBizPedidoCliente; + procedure SetPedidos(const Value: IBizPedidoCliente); + + function GetController : IPedidosClienteController; virtual; + procedure SetController (const Value : IPedidosClienteController); virtual; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; 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 Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos; + property Controller : IPedidosClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModulePedidosCliente, uDataModuleUsuarios, uBizAlbaranesCliente, + uAlbaranesClienteController, uEditorBase, uEditorDBBase, uDialogUtils, + uFacturasClienteController, uBizFacturasCliente, + uGenerarPedidosProvUtils, uGenerarAlbaranesCliUtils; + + +{$R *.dfm} + +{ +*************************** TfEditorPedidosCliente *************************** +} +procedure TfEditorPedidosCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos + and (FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE); +end; + +procedure TfEditorPedidosCliente.actGenerarAlbaranCliExecute(Sender: TObject); +begin + inherited; + GenerarAlbaranCli(FPedidos); +end; + +procedure TfEditorPedidosCliente.actGenerarExecute(Sender: TObject); +var + Respuesta : Integer; +begin + inherited; + + Respuesta := JsGenerarDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsGenerarDialog.CustomButtonResult of + 200 : begin // Generar uno o más pedidos a proveedor + actGenerarPedidoProv.Execute; + end; + 100 : begin // Albaran nuevo + actGenerarAlbaranCli.Execute; + end; + end; + actRefrescar.Execute; + end; +end; + +procedure TfEditorPedidosCliente.actGenerarFacturaExecute(Sender: TObject); +var + AFacturasController : IFacturasClienteController; + AFactura : IBizFacturaCliente; +begin + inherited; + AFacturasController := TFacturasClienteController.Create; + try + AFactura := AFacturasController.Nuevo; + if AFacturasController.Anadir(AFactura, FPedidos.ID) then + AFacturasController.Ver(AFactura); + actRefrescar.Execute; + finally + AFacturasController := NIL; + AFactura := NIL; + end; +end; + +procedure TfEditorPedidosCliente.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and ViewGrid.esSeleccionCeldaDatos + and (FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE); +end; + +procedure TfEditorPedidosCliente.actGenerarPedidoProvExecute(Sender: TObject); +begin + inherited; + GenerarPedidosProv(FPedidos); +end; + +procedure TfEditorPedidosCliente.actGenerarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + ViewGrid.esSeleccionCeldaDatos and + (FPedidos.SITUACION <> SITUACION_PEDIDO_SERVIDO); +end; + +procedure TfEditorPedidosCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewPedidosCliente) as IViewPedidosCliente; +end; + +constructor TfEditorPedidosCliente.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +destructor TfEditorPedidosCliente.Destroy; +begin + FPedidos := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorPedidosCliente.DuplicarInterno; +var + APedido : IBizPedidoCliente; +begin + inherited; + APedido := FController.Duplicar(Pedidos); + try + FController.Ver(APedido); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorPedidosCliente.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este pedido de cliente?', '') = IDYES) then + begin + FController.Eliminar(Pedidos); + inherited; + end; +end; + +procedure TfEditorPedidosCliente.FormShow(Sender: TObject); +begin + 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 TfEditorPedidosCliente.GetController: IPedidosClienteController; +begin + Result := FController; +end; + +function TfEditorPedidosCliente.GetPedidos: IBizPedidoCliente; +begin + Result := FPedidos; +end; + +procedure TfEditorPedidosCliente.ImprimirInterno; +var + Respuesta : Integer; +begin + //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 + FController.Print(FPedidos); + end; + end; + end; + end; +end; + +procedure TfEditorPedidosCliente.ModificarInterno; +begin + inherited; + FController.Ver(Pedidos); +end; + +procedure TfEditorPedidosCliente.NuevoInterno; +begin + inherited; + if FController.Anadir(Pedidos) then + FController.Ver(Pedidos); +end; + +procedure TfEditorPedidosCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de pedidos de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPedidosCliente.PrevisualizarInterno; +var + Respuesta : Integer; +begin + //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 + FController.Preview(FPedidos); + end; + end; + end; + end; +end; + +procedure TfEditorPedidosCliente.SetController(const Value: IPedidosClienteController); +begin + FController := Value; +end; + +procedure TfEditorPedidosCliente.SetPedidos(const Value: IBizPedidoCliente); +begin + FPedidos := Value; + dsDataTable.DataTable := FPedidos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewPedidosCliente).Pedidos := Pedidos; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.dfm new file mode 100644 index 00000000..eab35d42 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.dfm @@ -0,0 +1,12 @@ +inherited fEditorPedidosClientePreview: TfEditorPedidosClientePreview + Caption = 'Previsualizar el pedidos proveedor' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.pas new file mode 100644 index 00000000..d382f446 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosClienteReport.pas @@ -0,0 +1,23 @@ +unit uEditorPedidosClienteReport; + +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, uIEditorPedidosClientePreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorPedidosClientePreview = class(TfEditorPreview, IEditorPedidosClientePreview) + end; + + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uPedidosClienteViewRegister.pas b/Source/Modulos/Pedidos de cliente/Views/uPedidosClienteViewRegister.pas new file mode 100644 index 00000000..0e8fd7b8 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uPedidosClienteViewRegister.pas @@ -0,0 +1,33 @@ +unit uPedidosClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorPedidosCliente, uEditorPedidoCliente, uEditorElegirPedidosCliente, + uEditorElegirArticulosPedidoCliente, uEditorPedidosClienteReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorPedidosCliente, 'EditorPedidosCliente'); + EditorRegistry.RegisterClass(TfEditorPedidoCliente, 'EditorPedidoCliente'); + EditorRegistry.RegisterClass(TfEditorElegirPedidosCliente, 'EditorElegirPedidosCliente'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoCliente, 'EditorElegirArticulosPedidosCliente'); + EditorRegistry.RegisterClass(TfEditorPedidosClientePreview, 'EditorPedidosClientePreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorPedidosCliente); + EditorRegistry.UnRegisterClass(TfEditorPedidoCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirPedidosCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoCliente); + EditorRegistry.UnRegisterClass(TfEditorPedidosClientePreview); +end; + +end. + diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.dfm new file mode 100644 index 00000000..761097c0 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.dfm @@ -0,0 +1,13 @@ +inherited frViewDetallesPedidoCliente: TfrViewDetallesPedidoCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited TBXDock1: TTBXDock + ExplicitTop = 46 + ExplicitWidth = 451 + end +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.pas new file mode 100644 index 00000000..adda7f19 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewDetallesPedidoCliente.pas @@ -0,0 +1,64 @@ +unit uViewDetallesPedidoCliente; + +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, uBizPedidosCliente; + +type + IViewDetallesPedidoCliente = interface(IViewDetallesArticulos) + ['{3AF39FF4-291E-4E87-AF9A-93C240A744CD}'] + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + end; + + TfrViewDetallesPedidoCliente = class(TfrViewDetallesArticulos, IViewDetallesPedidoCliente) + protected + FPedido: IBizPedidoCliente; + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); + + procedure AnadirArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + end; + +implementation +{$R *.dfm} + +uses uDetallesPedidoClienteController; + +{ TfrViewDetallesPedidoProveedor } + +function TfrViewDetallesPedidoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + Result := (Controller as IDetallesPedidoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Pedido.Cliente.ID); +end; + +procedure TfrViewDetallesPedidoCliente.AnadirArticulosInterno; +begin + (Controller as IDetallesPedidoClienteController).AnadirArticulos(Detalles, Pedido.Cliente); +end; + +function TfrViewDetallesPedidoCliente.GetPedido: IBizPedidoCliente; +begin + Result := FPedido; +end; + +procedure TfrViewDetallesPedidoCliente.SetPedido(const Value: IBizPedidoCliente); +begin + FPedido := Value; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.dfm new file mode 100644 index 00000000..7fec6a3f --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.dfm @@ -0,0 +1,204 @@ +inherited frViewDireccionEntregaPedidoCliente: TfrViewDireccionEntregaPedidoCliente + 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 + 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 + 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 = 281 + 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 + 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 = 41 + 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 + 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 = 281 + 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 + 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 = dsPedido + 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 = dsPedido + 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 = 281 + 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/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.pas new file mode 100644 index 00000000..5615fd5e --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewDireccionEntregaPedidoCliente.pas @@ -0,0 +1,144 @@ +unit uViewDireccionEntregaPedidoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosCliente, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uPedidosClienteController, + Buttons, cxDBEdit; + +type + IViewDireccionEntregaPedidoCliente = interface(IViewBase) + ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] + function GetPedidoCliente: IBizPedidoCliente; + procedure SetPedidoCliente(const Value: IBizPedidoCliente); + property PedidoCliente: IBizPedidoCliente read GetPedidoCliente write SetPedidoCliente; + end; + + TfrViewDireccionEntregaPedidoCliente = class(TfrViewBase, IViewDireccionEntregaPedidoCliente) + 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 : IBizPedidoCliente; + FController : IPedidosClienteController; + function GetPedidoCliente: IBizPedidoCliente; + procedure SetPedidoCliente(const Value: IBizPedidoCliente); + procedure RefrescarDireccion; + public + property PedidoCliente: IBizPedidoCliente read GetPedidoCliente write SetPedidoCliente; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uEditorRegistryUtils; + +procedure TfrViewDireccionEntregaPedidoCliente.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 TfrViewDireccionEntregaPedidoCliente.Create(AOwner: TComponent); +begin + inherited; + FPedido := NIL; + + { FController := TPedidosClienteController.Create; + FAlmacenesController := TAlmacenesController.Create; + FAlmacenes := FAlmacenesController.BuscarTodos; + FAlmacenes.DataTable.Active := True; + dsAlmacenes.DataTable := FAlmacenes.DataTable;} +end; + +destructor TfrViewDireccionEntregaPedidoCliente.Destroy; +begin +{ cbLista.Properties.OnValidate := Nil; + FAlmacenesController := Nil; + FAlmacenes := Nil; + FController := NIL; +} + FPedido := NIL; + inherited; +end; + +function TfrViewDireccionEntregaPedidoCliente.GetPedidoCliente: IBizPedidoCliente; +begin + Result := FPedido; +end; + +procedure TfrViewDireccionEntregaPedidoCliente.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 TfrViewDireccionEntregaPedidoCliente.SetPedidoCliente( + const Value: IBizPedidoCliente); +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/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.dfm new file mode 100644 index 00000000..b1d8f235 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.dfm @@ -0,0 +1,17 @@ +inherited frViewElegirArticulosPedidosCliente: TfrViewElegirArticulosPedidosCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_NETO: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn + Visible = False + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.pas new file mode 100644 index 00000000..d35cd529 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewElegirArticulosPedidosCliente.pas @@ -0,0 +1,26 @@ +unit uViewElegirArticulosPedidosCliente; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid; + +type + IViewElegirArticulosPedidosCliente = interface(IViewArticulos) + ['{5292A518-0797-4FFC-AC9B-90F0113AF3AF}'] + end; + + TfrViewElegirArticulosPedidosCliente = class(TfrViewArticulos, IViewElegirArticulosPedidosCliente) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm new file mode 100644 index 00000000..5beff59c --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm @@ -0,0 +1,481 @@ +inherited frViewPedidoCliente: TfrViewPedidoCliente + Width = 688 + Height = 407 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 688 + ExplicitHeight = 407 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 688 + Height = 407 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 688 + 407) + object edtFechaPedido: TcxDBDateEdit + Left = 116 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PEDIDO' + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 119 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 362 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Height = 253 + Width = 186 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 143 + end + inline frViewClientePedido: TfrViewDatosYSeleccionCliente + Left = 362 + Top = 28 + Width = 350 + Height = 212 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 12 + ReadOnly = False + ExplicitLeft = 362 + ExplicitTop = 28 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtlNombre: TcxDBTextEdit + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 212 + ExplicitLeft = 212 + end + inherited Button3: TBitBtn + Left = 102 + ExplicitLeft = 102 + end + end + inherited DADataSource: TDADataSource + Top = 72 + end + inherited ActionList1: TActionList + Top = 72 + end + inherited PngImageList: TPngImageList + Top = 72 + end + end + object eCalle: TcxDBTextEdit + Left = 116 + Top = 166 + 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 = 263 + end + object ePoblacion: TcxDBTextEdit + Left = 116 + Top = 193 + DataBinding.DataField = 'POBLACION' + 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 = 6 + Width = 162 + end + object eCodigoPostal: TcxDBTextEdit + Left = 267 + Top = 193 + 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 = 65 + end + object eProvincia: TcxDBTextEdit + Left = 116 + Top = 220 + DataBinding.DataField = 'PROVINCIA' + 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 = 8 + Width = 263 + end + object ePersonaContacto: TcxDBTextEdit + Left = 116 + Top = 247 + 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 + 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 = 84 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 116 + Top = 274 + DataBinding.DataField = 'TELEFONO' + 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 = 10 + Width = 122 + end + object bElegirDireccion: TBitBtn + Left = 160 + Top = 301 + Width = 172 + Height = 25 + Action = actElegirDireccion + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + TabOrder = 11 + 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.ListSource = dsFormaPago + 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 = 101 + end + object bFormasPago: TButton + Left = 200 + Top = 109 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 4 + OnClick = bFormasPagoClick + end + object edtFechaPrevistaEnvio: TcxDBDateEdit + Left = 116 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 216 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group10: 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 = 'C'#243'digo:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del pedido:' + Control = edtFechaPedido + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Entrega prevista:' + Control = edtFechaPrevistaEnvio + 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 dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Direcci'#243'n de entrega' + 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 = 'Poblaci'#243'n:' + Control = ePoblacion + 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 = 'Provincia:' + Control = eProvincia + 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 + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del cliente' + object dxLayoutControl1Item1: TdxLayoutItem + Control = frViewClientePedido + ControlOptions.AutoColor = True + 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 + end + object DADataSource: TDADataSource + Left = 8 + Top = 8 + end + object ActionList1: TActionList + Left = 8 + Top = 40 + object actElegirDireccion: TAction + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + end + object dsFormaPago: TDADataSource + Left = 40 + Top = 8 + end +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas new file mode 100644 index 00000000..66954222 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas @@ -0,0 +1,192 @@ +unit uViewPedidoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosCliente, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, uViewDatosYSeleccionCliente, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaPedidoCliente, Buttons, ActnList, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController; + +type + IViewPedidoCliente = interface(IViewBase) + ['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}'] + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + + function GetViewClientePedido: TfrViewDatosYSeleccionCliente; + procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente); + property ViewClientePedido: TfrViewDatosYSeleccionCliente read GetViewClientePedido write SetViewClientePedido; + end; + + TfrViewPedidoCliente = class(TfrViewBase, IViewPedidoCliente) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaPedido: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Item3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + frViewClientePedido: TfrViewDatosYSeleccionCliente; + dxLayoutControl1Item8: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + ePoblacion: TcxDBTextEdit; + dxLayoutControl1Item10: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eProvincia: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item14: TdxLayoutItem; + bElegirDireccion: TBitBtn; + ActionList1: TActionList; + actElegirDireccion: TAction; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + dsFormaPago: TDADataSource; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + edtFechaPrevistaEnvio: TcxDBDateEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + protected + FPedido : IBizPedidoCliente; + FViewClientePedido : TfrViewDatosYSeleccionCliente; + FFormasPagoController : IFormasPagoController; + + function GetPedido: IBizPedidoCliente; + procedure SetPedido(const Value: IBizPedidoCliente); virtual; + function GetViewClientePedido: TfrViewDatosYSeleccionCliente; + procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente); + public + property Pedido: IBizPedidoCliente read GetPedido write SetPedido; + property ViewClientePedido: TfrViewDatosYSeleccionCliente read GetViewClientePedido; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPedidoCliente } + +uses + uClientesController, uBizDireccionesContacto, uPedidosClienteController, + uBizFormasPago; + + +procedure TfrViewPedidoCliente.actElegirDireccionExecute(Sender: TObject); +var + AClientesController : IClientesController; + APedidoController : IPedidosClienteController; + ADireccion : IBizDireccionesContacto; +begin + inherited; + AClientesController := TClientesController.Create; + APedidoController := TPedidosClienteController.Create; + try + ADireccion := AClientesController.ElegirDireccionEntrega(FPedido.Cliente.Direcciones, + 'Seleccione la dirección del cliente que quiere utilizar como dirección de envio de este pedido.'); + if Assigned(ADireccion) then + begin + APedidoController.CopiarDireccionEnvio(ADireccion, FPedido); + FPedido.Edit; + FPedido.IMPORTE_PORTE := ADireccion.PORTE; + end; + finally + AClientesController := NIL; + APedidoController := NIL; + end; +end; + +procedure TfrViewPedidoCliente.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FPedido) and + Assigned(FViewClientePedido) and + FPedido.DataTable.Active and + Assigned(FPedido.Cliente) and + Assigned(FPedido.Cliente) and + Assigned(FPedido.Cliente.Direcciones) and + FPedido.Cliente.Direcciones.DataTable.Active and + (FPedido.Cliente.Direcciones.DataTable.RecordCount > 0); +end; + +procedure TfrViewPedidoCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); +end; + +procedure TfrViewPedidoCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPagoController := TFormasPagoController.Create; + FViewClientePedido := frViewClientePedido; + FViewClientePedido.MsgElegirCliente := 'Elija el cliente al que se le realizará el pedido.'; +end; + +procedure TfrViewPedidoCliente.CustomViewDestroy(Sender: TObject); +begin + FViewClientePedido := NIL; + FFormasPagoController := NIL; + inherited; +end; + +function TfrViewPedidoCliente.GetPedido: IBizPedidoCliente; +begin + Result := FPedido; +end; + +function TfrViewPedidoCliente.GetViewClientePedido: TfrViewDatosYSeleccionCliente; +begin + Result := FViewClientePedido; +end; + +procedure TfrViewPedidoCliente.SetPedido(const Value: IBizPedidoCliente); +begin + FPedido := Value; + if Assigned(FPedido) then + begin + DADataSource.DataTable := FPedido.DataTable; + dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; + dsFormaPago.DataTable.Active := True; + frViewClientePedido.Cliente := FPedido.Cliente; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + frViewClientePedido.Cliente := nil; + end; +end; + +procedure TfrViewPedidoCliente.SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente); +begin + FViewClientePedido := Value; +end; + +end. diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm new file mode 100644 index 00000000..4aa66cb3 --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm @@ -0,0 +1,351 @@ +inherited frViewPedidosCliente: TfrViewPedidosCliente + Width = 596 + Height = 479 + ExplicitWidth = 596 + ExplicitHeight = 479 + inherited cxGrid: TcxGrid + Width = 596 + Height = 351 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 596 + ExplicitHeight = 351 + 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> + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + IsCaptionAssigned = True + end + object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Con incidencias' + ImageIndex = 3 + Tag = 1 + Value = 1 + end> + Properties.LargeImages = PngImageList + Properties.ShowDescriptions = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewTIENDAWEB: TcxGridDBColumn + Caption = #191'Proviene de tienda web?' + DataBinding.FieldName = 'REF_TIENDA_WEB' + OnCustomDrawCell = cxGridViewTIENDAWEBCustomDrawCell + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 25 + Width = 68 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + Width = 69 + end + object cxGridViewFECHA_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PEDIDO' + BestFitMaxWidth = 45 + SortIndex = 0 + SortOrder = soDescending + Width = 45 + end + object cxGridViewFECHA_ENTREGA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PREVISTA_ENVIO' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE' + Width = 69 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Width = 70 + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Width = 68 + 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' + Width = 70 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 69 + 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 = 'En proceso' + end + object cxGridLevelServidor: TcxGridLevel + Caption = 'Servidos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 592 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 367 + ExplicitLeft = 367 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 592 + ExplicitWidth = 592 + inherited tbxBotones: TTBXToolbar + Width = 582 + ExplicitWidth = 582 + end + 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 = 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 + Left = 248 + object cxStylePENDIENTES: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleENPROCESO: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleSERVIDOS: TcxStyle + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 288 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + 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 + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001E34944415478DAA5932D72E43010855F98D934341BC1858261D10D76 + 8E3047305C1685051A067A59A0E042E70682863D6C608719EE6B399EADDABFAA + AD7595CAB2DCFDF5EB1FDDE13F9FBB9F0FF258225F27AEC415D109B05A35C3CC + EF32E653FD2380CE035F4388720C41609DC2D68ABA28B42688E1820E79CAE7E9 + 17407316E4788F43E8033CF2F46D42F804E8E29084E0A2ACBE7B90E9798334C0 + 40D9145AC2BD1E8591A58B5CFE27406D462915EA59AD4A70812CF142FBD3340E + 750764113C8648C9A214E20A0C762560A1A925A662A8FDD0D48A06846B782220 + 6F80E732C7181F14858079CB69895B1D57D6824BBB99FF4A03C9952134BD9597 + 21ED008BF1F341F52BAA3035098CC23428DB561A70D53EC39888EFB941D4F45E + 5EB2DC0021A6035BC56A0F306660BD1B464A3DB5A8B00CED89606A62B201A61D + 90CB8C3E3EA03BD2F002BD8EF4550FB441D421532B62658D02CFC4C2DBFC9AD3 + 0EC86CDBA349DC24B2F7BA8E2D227BCF9CFD3CB573EC69409EE6D731EF804899 + EC4F3CB6D631927623FFD48F5AC84741B1B572D58B4FEB5CC67A1BA4739ECE34 + 18D185435DE756B070B5CDB17305B63BB741A2F38F41BA41BE38C4324D8FE6C6 + 3E0FBE7CEF15F602716877E7DF5EA6F330B6CBC4F6A55641CAE69EC973245714 + 97FDD7DBF8AFCF7740E00D20BA266C3A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end> + Left = 56 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas new file mode 100644 index 00000000..0544188b --- /dev/null +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas @@ -0,0 +1,248 @@ +unit uViewPedidosCliente; + +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, dxPScxGridLnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, + uBizPedidosCliente, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +type + IViewPedidosCliente = interface(IViewGrid) + ['{96821714-55CF-4BC1-A0C1-16E027B2EF16}'] + function GetPedidos: IBizPedidoCliente; + procedure SetPedidos(const Value: IBizPedidoCliente); + property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos; + end; + + TfrViewPedidosCliente = class(TfrViewGrid, IViewPedidosCliente) + cxGridDBTableView1: TcxGridDBTableView; + PngImageList: TPngImageList; + cxGridViewID: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_PEDIDO: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridLevelPendientes: TcxGridLevel; + cxGridLevelEnProceso: TcxGridLevel; + cxGridLevelServidor: TcxGridLevel; + cxStylePENDIENTES: TcxStyle; + cxStyleENPROCESO: TcxStyle; + cxStyleSERVIDOS: TcxStyle; + actCliente: TAction; + actProvincia: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem3: TTBXItem; + cxGridViewTIENDAWEB: TcxGridDBColumn; + cxGridViewFECHA_ENTREGA: TcxGridDBColumn; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var + ADone: Boolean); + 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 cxGridViewTIENDAWEBCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FPedidos: IBizPedidoCliente; + function GetPedidos: IBizPedidoCliente; + procedure SetPedidos(const Value: IBizPedidoCliente); + public + procedure AnadirOtrosFiltros; override; + property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos; + end; + +implementation + +uses SysUtils, variants, windows, uDataModulePedidosCliente, schPedidosClienteClient_Intf, + uViewGridBase; + +{$R *.dfm} + +procedure TfrViewPedidosCliente.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 TfrViewPedidosCliente.actClienteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewPedidosCliente.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 TfrViewPedidosCliente.actProvinciaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0); +end; + +procedure TfrViewPedidosCliente.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 TfrViewPedidosCliente.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_ENPROCESO, SITUACION_PEDIDO_ENPROCESO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_SERVIDO, SITUACION_PEDIDO_SERVIDO); + end; +end; + +procedure TfrViewPedidosCliente.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 TfrViewPedidosCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewPedidosCliente.cxGridViewCODIGOCustomDrawCell(Sender: + TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: + TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R: TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +end; + +procedure TfrViewPedidosCliente.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_PedidosClienteSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_PEDIDO_PENDIENTE then + AStyle := cxStylePENDIENTES + else if ASituacion = SITUACION_PEDIDO_ENPROCESO then + AStyle := cxStyleENPROCESO + else if ASituacion = SITUACION_PEDIDO_SERVIDO then + AStyle := cxStyleSERVIDOS; + end; +end; + +procedure TfrViewPedidosCliente.cxGridViewTIENDAWEBCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + + if not VarIsNull( _FocusedView.DataController.Values[AViewInfo.RecordViewInfo.Index, AViewInfo.Item.Index]) then + begin + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 4); + ADone := True; + end; +end; + +function TfrViewPedidosCliente.GetPedidos: IBizPedidoCliente; +begin + Result := FPedidos; +end; + +procedure TfrViewPedidosCliente.SetPedidos(const Value: IBizPedidoCliente); +begin + FPedidos := Value; + if Assigned(FPedidos) then + dsDataSource.DataTable := FPedidos.DataTable; +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 00000000..fd46ae6a --- /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.dpk b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk new file mode 100644 index 00000000..136ba20a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk @@ -0,0 +1,75 @@ +package RecibosCliente_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + DataAbstract_D10, + Base, + GUIBase, + Usuarios, + RecibosCliente_model, + RecibosCliente_data, + Contactos_controller; + +contains + uRecibosClienteController in 'uRecibosClienteController.pas', + uIEditorRecibosCliente in 'View\uIEditorRecibosCliente.pas', + uIEditorReciboCliente in 'View\uIEditorReciboCliente.pas', + uPagosClienteController in 'uPagosClienteController.pas', + uIEditorElegirRecibosCliente in 'View\uIEditorElegirRecibosCliente.pas', + uIEditorRecibosClientePreview in 'View\uIEditorRecibosClientePreview.pas', + uRecibosClienteReportController in 'uRecibosClienteReportController.pas', + uIEditorFechaPago in 'View\uIEditorFechaPago.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.pas new file mode 100644 index 00000000..8b28d60d --- /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.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas new file mode 100644 index 00000000..b349b811 --- /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.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.pas new file mode 100644 index 00000000..ea4098cb --- /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.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.pas new file mode 100644 index 00000000..fadcd629 --- /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 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 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.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.pas new file mode 100644 index 00000000..21a71652 --- /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.pas b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas new file mode 100644 index 00000000..567b9115 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas @@ -0,0 +1,249 @@ +{ +=============================================================================== + 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 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; + procedure AsignarID(APagosCliente: IBizPagosCliente; IDCabecera: Integer; AEsNuevo:Boolean); + end; + + TPagosClienteController = class(TSujeto, IPagosClienteController) + protected + FDataModule : IDataModuleRecibosCliente; + +// procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; +// function _Vacio : IBizRecibosCliente; + procedure AsignarDataModule; + procedure AsignarDatos(APagosCliente: IBizPagosCliente; IDCabecera: Integer); + + public + constructor Create; virtual; + destructor Destroy; override; + procedure AsignarID(APagosCliente: IBizPagosCliente; IDCabecera: Integer; AEsNuevo:Boolean); + 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 devolución devolvemos true en caso de ser +una devolución 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; + +procedure TPagosClienteController.AsignarDatos(APagosCliente: IBizPagosCliente; IDCabecera: Integer); +begin + inherited; + APagosCliente.Edit; + APagosCliente.ID := FDataModule.GetNextID(APagosCliente.DataTable.LogicalName); + APagosCliente.ID_RECIBO := IDCabecera; + APagosCliente.Post +end; + +procedure TPagosClienteController.AsignarID(APagosCliente: IBizPagosCliente; IDCabecera: Integer; AEsNuevo:Boolean); +begin + with APagosCliente do + begin + DataTable.DisableControls; + try + begin + if not DataTable.Active then + DataTable.Active := True; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + AsignarDatos(APagosCliente, IDCabecera); + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if DataTable.FieldByName('ID').AsInteger < 0 then + AsignarDatos(APagosCliente, IDCabecera); + DataTable.Next + end; + end; + end; + finally + DataTable.EnableControls; + end; + end; +end; + +constructor TPagosClienteController.Create; +begin + AsignarDataModule; +end; + +{ +function TPagosClienteController._Vacio: IBizRecibosCliente; +begin + Result := Buscar(ID_NULO); +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 devolución devuelve false} +begin + Result := False; + + 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 + 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; + +{ +procedure TPagosClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +var + ARecibosCliente : IBizRecibosCliente; + ADetalles : IBizDetallesIBizRecibosCliente; +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesIBizRecibosCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizRecibosCliente, ARecibosCliente) then + begin + ARecibosCliente.Edit; + try + ARecibosCliente.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + ARecibosCliente.Post; + end; + end; +end; +} + +end. 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 00000000..dc1eeccd --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas @@ -0,0 +1,782 @@ +{ +=============================================================================== + 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 uRecibosClienteController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uPagosClienteController, uClientesController, + uBizRecibosCliente, uIDataModuleRecibosCliente; + +type + IRecibosClienteController = interface(IObservador) + ['{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 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; + + procedure RecuperarCliente(AReciboCliente : IBizRecibosCliente); + + function Buscar(const ID: Integer): IBizRecibosCliente; + function BuscarTodosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; + function BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; + function BuscarTodos: IBizRecibosCliente; + function BuscarTodosPendientesDevueltos: IBizRecibosCliente; + procedure VerTodos(ARecibosCliente: IBizRecibosCliente); + procedure Ver(ARecibosCliente: IBizRecibosCliente); + function Localizar(ARecibosCliente: IBizRecibosCliente; ADescripcion:String): Boolean; + function DarListaRecibosCliente: TStringList; + 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); + + procedure Preview(ARecibosCliente : IBizRecibosCliente); + procedure Print(ARecibosCliente : IBizRecibosCliente); + end; + + TRecibosClienteController = class(TObservador, IRecibosClienteController) + private + function ImporteTotalModificado(ARecibosCliente: IBizRecibosCliente; + var ImporteRestante: Currency): Boolean; + 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; + procedure AsignarID(ARecibosCliente: IBizRecibosCliente; const IDNuevo: Integer); + function DarNuevaReferencia(ID_FACTURA : Integer; REFERENCIA: String): String; + + public + property PagosController: IPagosClienteController read GetPagosController write SetPagosController; + constructor Create; virtual; + 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 BuscarTodosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; + function BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; + function BuscarTodos: IBizRecibosCliente; + function BuscarTodosPendientesDevueltos: IBizRecibosCliente; + procedure VerTodos(ARecibosCliente: IBizRecibosCliente); + procedure Ver(ARecibosCliente: IBizRecibosCliente); + function Localizar(ARecibosCliente: IBizRecibosCliente; ADescripcion:String): Boolean; + + function DarListaRecibosCliente: TStringList; + 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); + + procedure Preview(ARecibosCliente : IBizRecibosCliente); + procedure Print(ARecibosCliente : IBizRecibosCliente); + end; + +implementation + +uses + Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + uRecibosClienteReportController, uBizContactos, + schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente, + uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago; + +{ 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 añade una devolución, el recibo quedará libre y podrá ser incluido en otra remesa diferente.' + #10#13 + '¿Desea continuar?'), 'Atención', 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); + AEditor.Release; + finally + AEditor := NIL; + end; + end; + + // Se cancela la operación + 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 operación + else + Exit; + + //Finalmente añadimos 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 devolución + else + begin + ARecibosCliente.Edit; + ARecibosCliente.SITUACION := CTE_DEVUELTO; + Result := False; + end; +end; + +procedure TRecibosClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosCliente.Create(Nil); +end; + +procedure TRecibosClienteController.AsignarID(ARecibosCliente: IBizRecibosCliente; + const IDNuevo: Integer); +begin + if not Assigned(ARecibosCliente) then + raise Exception.Create ('IBizRecibosCliente no asignado'); + + if not Assigned(ARecibosCliente.Pagos) then + raise Exception.Create ('Pagos del recibo no asignados'); + + if not Assigned(FPagosController) then + raise Exception.Create ('Controller pagos no asignado'); + + { Los detalles hay que comprobarlos siempre + tanto en inserción como en modificación. } + if Assigned(ARecibosCliente.Pagos) then + FPagosController.AsignarID(ARecibosCliente.Pagos, IDNuevo, ARecibosCliente.EsNuevo); + +//Lo haremos siempre para actualizar siempre la referencia del recibo +// if ARecibosCliente.EsNuevo then +// begin + ARecibosCliente.Edit; + ARecibosCliente.ID := IDNuevo; + ARecibosCliente.DESCRIPCION := 'RECIBO ' + ARecibosCliente.REFERENCIA + ' - ' + CifraToLetras((ARecibosCliente.IMPORTE + ARecibosCliente.OTROS_GASTOS)); + ARecibosCliente.Post; +// end; +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; + //Añadimos 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; + AsignarID(ARecibos, ARecibos.ID); + end; + Next; + end; + end; + end; +end; + +function TRecibosClienteController.BuscarTodos: IBizRecibosCliente; +begin + Result := FDataModule.GetItems; +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); +end; + +function TRecibosClienteController.BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosClienteID_FACTURA + ' = ' + IntToStr(ID_FACTURA)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.BuscarTodosPendientesDevueltos: IBizRecibosCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosClienteSITUACION + ' = ''' + CTE_PENDIENTE + ''''); + AddText(' OR ' + fld_RecibosClienteSITUACION + ' = ''' + CTE_DEVUELTO + ''''); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.BuscarTodosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosClienteID_REMESA + ' = ' + IntToStr(ID_REMESA)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController._Vacio: IBizRecibosCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TRecibosClienteController.DarListaRecibosCliente: TStringList; +var + ARecibosCliente: IBizRecibosCliente; +begin + ARecibosCliente := BuscarTodos; + ARecibosCliente.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ARecibosCliente.DataTable.First; + while not ARecibosCliente.DataTable.EOF do + begin + Add(ARecibosCliente.DESCRIPCION); + ARecibosCliente.DataTable.Next; + end; + end; + finally + ARecibosCliente := NIL; + end; +end; + +function TRecibosClienteController.DarNuevaReferencia(ID_FACTURA: Integer; REFERENCIA: String): String; +var + ARecibosCliente: IBizRecibosCliente; + NumReferencia : Integer; + Cadena : String; +begin + try + ARecibosCliente := BuscarTodosFactura(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 DUPLIACDO) + // 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; +var + ImporteRestante: Double; + +begin + Result := False; + + 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 emisión 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 "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + ARecibosCliente.Edit; + try + ARecibosCliente.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + ARecibosCliente.Post; + end; + + Result := True; +end; + +procedure TRecibosClienteController.Ver(ARecibosCliente: IBizRecibosCliente); +var + AEditor : IEditorReciboCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarCliente(ARecibosCliente); + CreateEditor('EditorReciboCliente', IEditorReciboCliente, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Recibo := ARecibosCliente; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TRecibosClienteController.VerTodos(ARecibosCliente: IBizRecibosCliente); +var + AEditor : IEditorRecibosCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorRecibosCliente', IEditorRecibosCliente, AEditor); + with AEditor do + RecibosCliente := ARecibosCliente; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +function TRecibosClienteController.ElegirRecibos(ARecibos: IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; +var + AEditor : IEditorElegirRecibosCliente; +begin + Result := NIL; + CreateEditor('EditorElegirRecibosCliente', IEditorElegirRecibosCliente, AEditor); + try + with AEditor do + begin + Controller := Self; + RecibosCliente := ARecibos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := RecibosClienteSeleccionados; + Release; + end; + finally + AEditor := NIL; + end; +end; + +function TRecibosClienteController.Eliminar(ARecibosCliente: IBizRecibosCliente): Boolean; +begin + Result := False; + + 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 + 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 + NuevoID : Integer; + ANuevoReciboCliente : IBizRecibosCliente; + ImporteRestante : Currency; +begin + Result := False; + + ANuevoReciboCliente := NIL; + ImporteRestante := 0; + + if ValidarReciboCliente(ARecibosCliente) then + begin + ShowHourglassCursor; + try + if ARecibosCliente.EsNuevo then + NuevoID := FDataModule.GetNextID(ARecibosCliente.DataTable.LogicalName) + else + NuevoID := ARecibosCliente.ID; + + //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.ID := FDataModule.GetNextID(ARecibosCliente.DataTable.LogicalName); + ANuevoReciboCliente.IMPORTE := ImporteRestante; + ANuevoReciboCliente.DESCRIPCION := 'RECIBO ' + ANuevoReciboCliente.REFERENCIA + ' - ' + CifraToLetras(ImporteRestante); + ANuevoReciboCliente.Post; + end; + + //Primero debemos hacer el ApplyUpdates del recibo inicial por si fallase + //Así no se haría el nuevo + AsignarID(ARecibosCliente, NuevoID); + ARecibosCliente.DataTable.ApplyUpdates; + + if Assigned(ANuevoReciboCliente) then + ANuevoReciboCliente.DataTable.ApplyUpdates; + + Result := True; + finally + ANuevoReciboCliente := NIL; + HideHourglassCursor; + end; + end; +end; + +function TRecibosClienteController.Localizar(ARecibosCliente: IBizRecibosCliente; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ARecibosCliente.DataTable do + begin + DisableControls; + First; + if not Locate(fld_RecibosClienteDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRecibosClienteController.ModificarPago(ARecibosCliente: IBizRecibosCliente); +var + AEditor : IEditorFechaPago; + FechaPago: String; +begin + //Pedimos la fecha del pago + CreateEditor('EditorFechaPago', IEditorFechaPago, AEditor); + if Assigned(AEditor) then + try + FechaPago:= ''; + if (AEditor.ShowModal = mrOk) then + FechaPago := DateToStr(AEditor.FechaPago); + AEditor.Release; + finally + AEditor := NIL; + end; + + if Length(FechaPago) > 0 then + PagosController.Modificar(ARecibosCliente.Pagos, FechaPago); +end; + +function TRecibosClienteController.Nuevo: IBizRecibosCliente; +var + ARecibo : IBizRecibosCliente; +begin + ARecibo := Buscar(ID_NULO); + ARecibo.DataTable.Active := True; + Anadir(ARecibo); + Result := ARecibo; +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); + CopyDataTable(ARecibosCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRecibosClienteController.Preview(ARecibosCliente: IBizRecibosCliente); +var + AReportController : IRecibosClienteReportController; +begin + AReportController := TRecibosClienteReportController.Create; + try + AReportController.Preview(ARecibosCliente.ID); + finally + AReportController := NIL; + end; +end; + +procedure TRecibosClienteController.Print(ARecibosCliente: IBizRecibosCliente); +var + AReportController : IRecibosClienteReportController; +begin + AReportController := TRecibosClienteReportController.Create; + try + AReportController.Print(ARecibosCliente.ID); + finally + AReportController := NIL; + end; +end; + +end. 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 00000000..0199fa97 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.pas @@ -0,0 +1,103 @@ +unit uRecibosClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRecibosClienteReport, + uBizRecibosCliente; + +type + IRecibosClienteReportController = interface + ['{3837DFA3-0A38-4BB2-B0DB-D0615249EA49}'] + procedure Preview(const ID : integer); + procedure Print(const ID : integer); + end; + + TRecibosClienteReportController = class(TInterfacedObject, IRecibosClienteReportController) + private + FDataModule : IDataModuleRecibosClienteReport; + 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, uIEditorRecibosClientePreview, + uEditorPreview, uDataModuleRecibosCliente, uEditorBase, cxControls; + +{ TRecibosClienteReportController } + +constructor TRecibosClienteReportController.Create; +begin + 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 ID : integer); +var + AStream: Binary; + AEditor : IEditorRecibosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRecibosClientePreview', IEditorRecibosClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TRecibosClienteReportController.Print(const ID : integer); +var + AStream: Binary; + AEditor : IEditorRecibosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRecibosClientePreview', IEditorRecibosClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..e1d71b11 --- /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.dpk b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk new file mode 100644 index 00000000..4a92448d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk @@ -0,0 +1,51 @@ +package RecibosCliente_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, + dbrtl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base, + Usuarios, + RecibosCliente_model; + +contains + uDataModuleRecibosCliente in 'uDataModuleRecibosCliente.pas' {DataModuleRecibosCliente: TDAClientDataModule}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm new file mode 100644 index 00000000..4862c7c0 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm @@ -0,0 +1,786 @@ +object DataModuleRecibosCliente: TDataModuleRecibosCliente + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvRecibosCliente' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_RecibosCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ID' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_ID_REMESA' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ID_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_REFERENCIA_REMESA' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_REFERENCIA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FECHA_EMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_NOMBRE_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_NIF_CIF_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ENTIDAD_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_SUCURSAL_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_DC_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_CUENTA_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'RecibosCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'RecibosCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'RecibosCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecibosCliente' + IndexDefs = <> + Left = 272 + Top = 168 + end + object ds_RecibosCliente: TDADataSource + DataTable = tbl_RecibosCliente + Left = 272 + Top = 112 + end + object tbl_PagosCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ID_RECIBO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_ID_RECIBO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TIPO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_PAGO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_FECHA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TITULAR' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ENTIDAD' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_SUCURSAL' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_DC' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_CUENTA' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_ALTA' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_USUARIO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PagosCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PagosCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PagosCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + 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 = 384 + Top = 168 + end + object ds_PagosCliente: TDADataSource + DataTable = tbl_PagosCliente + Left = 384 + Top = 112 + 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 00000000..71902076 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.pas @@ -0,0 +1,173 @@ +{ +=============================================================================== + 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 uDataModuleRecibosCliente; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleRecibosCliente, uIDataModuleRecibosClienteReport, + uBizRecibosCliente, uBizPagosCliente; + +type + TDataModuleRecibosCliente = class(TDAClientDataModule, IDataModuleRecibosCliente, IDataModuleRecibosClienteReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_RecibosCliente: TDACDSDataTable; + ds_RecibosCliente: TDADataSource; + tbl_PagosCliente: TDACDSDataTable; + ds_PagosCliente: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetPagos: IBizPagosCliente; + public + function GetNextID(const DataSetName : String) : Integer; + function GetItems: IBizRecibosCliente; + function GetItem(const ID : Integer) : IBizRecibosCliente; + function NewItem : IBizRecibosCliente; + function GetReport(const ID: Integer): Binary; + + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schRecibosClienteClient_Intf; + +{ TDataModuleRecibosCliente } + + +function TDataModuleRecibosCliente.GetReport(const ID: Integer): Binary; +begin + Result := (RORemoteService as IsrvRecibosCliente).GenerateReport(ID); +end; + +procedure TDataModuleRecibosCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleRecibosCliente.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_RecibosCliente then + Result := 'GEN_RECIBOS_CLIENTE_ID'; + if DataSetName = nme_PagosCliente then + Result := 'GEN_PAGOS_CLIENTE_ID' +end; + +function TDataModuleRecibosCliente.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvRecibosCliente).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleRecibosCliente._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleRecibosCliente._GetPagos: IBizPagosCliente; +var + APagos : TDACDSDataTable; +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.GetItems: IBizRecibosCliente; +var + AIBizRecibosCliente : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AIBizRecibosCliente := _CloneDataTable(tbl_RecibosCliente); + AIBizRecibosCliente.BusinessRulesID := BIZ_CLIENT_IBizRecibosCliente; + + with TBizRecibosCliente(AIBizRecibosCliente.BusinessEventsObj) do + Pagos := _GetPagos; + + Result := (AIBizRecibosCliente as IBizRecibosCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosCliente.NewItem: IBizRecibosCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRecibosCliente.GetItem(const ID: Integer): IBizRecibosCliente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosClienteID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +end. 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 00000000..42832fe7 --- /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 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 uIDataModuleRecibosCliente; + +interface + +uses + uBizRecibosCliente; + +type + IDataModuleRecibosCliente = interface + ['{F4F02C9E-E861-4938-8A2D-FE971A41EE92}'] + function GetItems: IBizRecibosCliente; + function GetNextID(const DataSetName : String) : Integer; + function GetItem(const ID : Integer) : IBizRecibosCliente; + function NewItem : IBizRecibosCliente; + end; + +implementation + +end. 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 00000000..173b542a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleRecibosClienteReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleRecibosClienteReport = interface + ['{FBADD967-0008-4ED5-9CCD-5BFE4F527D52}'] + function GetReport(const ID: Integer): 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 00000000..bd24eb45 --- /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.dpk b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk new file mode 100644 index 00000000..ad0cb8ae --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk @@ -0,0 +1,45 @@ +package RecibosCliente_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + Contactos_model; + +contains + uIDataModuleRecibosCliente in 'Data\uIDataModuleRecibosCliente.pas', + uBizRecibosCliente in 'uBizRecibosCliente.pas', + uBizPagosCliente in 'uBizPagosCliente.pas', + uIDataModuleRecibosClienteReport in 'Data\uIDataModuleRecibosClienteReport.pas', + schRecibosClienteClient_Intf in 'schRecibosClienteClient_Intf.pas', + schRecibosClienteServer_Intf in 'schRecibosClienteServer_Intf.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas new file mode 100644 index 00000000..a015c4dd --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas @@ -0,0 +1,1336 @@ +unit schRecibosClienteClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_RecibosCliente = '{4CA0AA50-AB97-400F-933F-794A93288528}'; + RID_RecibosCliente_Refresh = '{7AB9784C-2731-4956-8DF9-7DFD9C4CA6D4}'; + RID_PagosCliente = '{2E518A3E-1897-4098-A728-3CE5AB041B32}'; + + { Data table names } + nme_RecibosCliente = 'RecibosCliente'; + nme_RecibosCliente_Refresh = 'RecibosCliente_Refresh'; + nme_PagosCliente = 'PagosCliente'; + + { RecibosCliente fields } + fld_RecibosClienteID = 'ID'; + 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_CLIENTE = 'ID_CLIENTE'; + fld_RecibosClienteNOMBRE_CLIENTE = 'NOMBRE_CLIENTE'; + fld_RecibosClienteNIF_CIF_CLIENTE = 'NIF_CIF_CLIENTE'; + fld_RecibosClienteENTIDAD_CLIENTE = 'ENTIDAD_CLIENTE'; + fld_RecibosClienteSUCURSAL_CLIENTE = 'SUCURSAL_CLIENTE'; + fld_RecibosClienteDC_CLIENTE = 'DC_CLIENTE'; + fld_RecibosClienteCUENTA_CLIENTE = 'CUENTA_CLIENTE'; + fld_RecibosClienteID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosClienteUSUARIO = 'USUARIO'; + + { RecibosCliente field indexes } + idx_RecibosClienteID = 0; + idx_RecibosClienteREFERENCIA = 1; + idx_RecibosClienteSITUACION = 2; + idx_RecibosClienteID_FACTURA = 3; + idx_RecibosClienteID_REMESA = 4; + idx_RecibosClienteREFERENCIA_REMESA = 5; + idx_RecibosClienteFECHA_EMISION = 6; + idx_RecibosClienteFECHA_VENCIMIENTO = 7; + idx_RecibosClienteDESCRIPCION = 8; + idx_RecibosClienteOBSERVACIONES = 9; + idx_RecibosClienteIMPORTE = 10; + idx_RecibosClienteOTROS_GASTOS = 11; + idx_RecibosClienteIMPORTE_TOTAL = 12; + idx_RecibosClienteFECHA_FACTURA = 13; + idx_RecibosClienteFORMA_PAGO_FACTURA = 14; + idx_RecibosClienteIMPORTE_FACTURA = 15; + idx_RecibosClienteID_CLIENTE = 16; + idx_RecibosClienteNOMBRE_CLIENTE = 17; + idx_RecibosClienteNIF_CIF_CLIENTE = 18; + idx_RecibosClienteENTIDAD_CLIENTE = 19; + idx_RecibosClienteSUCURSAL_CLIENTE = 20; + idx_RecibosClienteDC_CLIENTE = 21; + idx_RecibosClienteCUENTA_CLIENTE = 22; + idx_RecibosClienteID_EMPRESA = 23; + idx_RecibosClienteFECHA_ALTA = 24; + idx_RecibosClienteFECHA_MODIFICACION = 25; + idx_RecibosClienteUSUARIO = 26; + + { RecibosCliente_Refresh fields } + fld_RecibosCliente_RefreshID = 'ID'; + fld_RecibosCliente_RefreshREFERENCIA = 'REFERENCIA'; + fld_RecibosCliente_RefreshSITUACION = 'SITUACION'; + fld_RecibosCliente_RefreshID_FACTURA = 'ID_FACTURA'; + fld_RecibosCliente_RefreshID_REMESA = 'ID_REMESA'; + fld_RecibosCliente_RefreshREFERENCIA_REMESA = 'REFERENCIA_REMESA'; + fld_RecibosCliente_RefreshFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosCliente_RefreshFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosCliente_RefreshDESCRIPCION = 'DESCRIPCION'; + fld_RecibosCliente_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosCliente_RefreshIMPORTE = 'IMPORTE'; + fld_RecibosCliente_RefreshOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosCliente_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosCliente_RefreshFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosCliente_RefreshFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosCliente_RefreshIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosCliente_RefreshID_CLIENTE = 'ID_CLIENTE'; + fld_RecibosCliente_RefreshNOMBRE_CLIENTE = 'NOMBRE_CLIENTE'; + fld_RecibosCliente_RefreshNIF_CIF_CLIENTE = 'NIF_CIF_CLIENTE'; + fld_RecibosCliente_RefreshENTIDAD_CLIENTE = 'ENTIDAD_CLIENTE'; + fld_RecibosCliente_RefreshSUCURSAL_CLIENTE = 'SUCURSAL_CLIENTE'; + fld_RecibosCliente_RefreshDC_CLIENTE = 'DC_CLIENTE'; + fld_RecibosCliente_RefreshCUENTA_CLIENTE = 'CUENTA_CLIENTE'; + fld_RecibosCliente_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosCliente_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosCliente_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosCliente_RefreshUSUARIO = 'USUARIO'; + + { RecibosCliente_Refresh field indexes } + idx_RecibosCliente_RefreshID = 0; + idx_RecibosCliente_RefreshREFERENCIA = 1; + idx_RecibosCliente_RefreshSITUACION = 2; + idx_RecibosCliente_RefreshID_FACTURA = 3; + idx_RecibosCliente_RefreshID_REMESA = 4; + idx_RecibosCliente_RefreshREFERENCIA_REMESA = 5; + idx_RecibosCliente_RefreshFECHA_EMISION = 6; + idx_RecibosCliente_RefreshFECHA_VENCIMIENTO = 7; + idx_RecibosCliente_RefreshDESCRIPCION = 8; + idx_RecibosCliente_RefreshOBSERVACIONES = 9; + idx_RecibosCliente_RefreshIMPORTE = 10; + idx_RecibosCliente_RefreshOTROS_GASTOS = 11; + idx_RecibosCliente_RefreshIMPORTE_TOTAL = 12; + idx_RecibosCliente_RefreshFECHA_FACTURA = 13; + idx_RecibosCliente_RefreshFORMA_PAGO_FACTURA = 14; + idx_RecibosCliente_RefreshIMPORTE_FACTURA = 15; + idx_RecibosCliente_RefreshID_CLIENTE = 16; + idx_RecibosCliente_RefreshNOMBRE_CLIENTE = 17; + idx_RecibosCliente_RefreshNIF_CIF_CLIENTE = 18; + idx_RecibosCliente_RefreshENTIDAD_CLIENTE = 19; + idx_RecibosCliente_RefreshSUCURSAL_CLIENTE = 20; + idx_RecibosCliente_RefreshDC_CLIENTE = 21; + idx_RecibosCliente_RefreshCUENTA_CLIENTE = 22; + idx_RecibosCliente_RefreshID_EMPRESA = 23; + idx_RecibosCliente_RefreshFECHA_ALTA = 24; + idx_RecibosCliente_RefreshFECHA_MODIFICACION = 25; + idx_RecibosCliente_RefreshUSUARIO = 26; + + { 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; + +type + { IRecibosCliente } + IRecibosCliente = interface(IDAStronglyTypedDataTable) + ['{CBB96EBD-6AFF-4A95-B13E-F3932B8E7D40}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNOMBRE_CLIENTEValue: String; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); + function GetNIF_CIF_CLIENTEValue: String; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); + function GetENTIDAD_CLIENTEValue: String; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); + function GetSUCURSAL_CLIENTEValue: String; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); + function GetDC_CLIENTEValue: String; + procedure SetDC_CLIENTEValue(const aValue: String); + function GetCUENTA_CLIENTEValue: String; + procedure SetCUENTA_CLIENTEValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE: String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE: String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property DC_CLIENTE: String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property CUENTA_CLIENTE: String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TRecibosClienteDataTableRules } + TRecibosClienteDataTableRules = class(TDADataTableRules, IRecibosCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetENTIDAD_CLIENTEValue: String; virtual; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); virtual; + function GetSUCURSAL_CLIENTEValue: String; virtual; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); virtual; + function GetDC_CLIENTEValue: String; virtual; + procedure SetDC_CLIENTEValue(const aValue: String); virtual; + function GetCUENTA_CLIENTEValue: String; virtual; + procedure SetCUENTA_CLIENTEValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE: String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE: String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property DC_CLIENTE: String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property CUENTA_CLIENTE: String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosCliente_Refresh } + IRecibosCliente_Refresh = interface(IDAStronglyTypedDataTable) + ['{78DC2902-0367-4495-A26A-A96BE6585E27}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetNOMBRE_CLIENTEValue: String; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); + function GetNIF_CIF_CLIENTEValue: String; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); + function GetENTIDAD_CLIENTEValue: String; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); + function GetSUCURSAL_CLIENTEValue: String; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); + function GetDC_CLIENTEValue: String; + procedure SetDC_CLIENTEValue(const aValue: String); + function GetCUENTA_CLIENTEValue: String; + procedure SetCUENTA_CLIENTEValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE: String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE: String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property DC_CLIENTE: String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property CUENTA_CLIENTE: String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TRecibosCliente_RefreshDataTableRules } + TRecibosCliente_RefreshDataTableRules = class(TDADataTableRules, IRecibosCliente_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetENTIDAD_CLIENTEValue: String; virtual; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); virtual; + function GetSUCURSAL_CLIENTEValue: String; virtual; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); virtual; + function GetDC_CLIENTEValue: String; virtual; + procedure SetDC_CLIENTEValue(const aValue: String); virtual; + function GetCUENTA_CLIENTEValue: String; virtual; + procedure SetCUENTA_CLIENTEValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE: String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE: String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property DC_CLIENTE: String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property CUENTA_CLIENTE: String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPagosCliente } + IPagosCliente = interface(IDAStronglyTypedDataTable) + ['{329ABE2D-6808-4047-BA5E-39059B9475AC}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_RECIBOValue: Integer; + procedure SetID_RECIBOValue(const aValue: Integer); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetFECHA_PAGOValue: DateTime; + procedure SetFECHA_PAGOValue(const aValue: DateTime); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TPagosClienteDataTableRules } + TPagosClienteDataTableRules = class(TDADataTableRules, IPagosCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ 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.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.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.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_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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.GetENTIDAD_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteENTIDAD_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetENTIDAD_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteENTIDAD_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetSUCURSAL_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteSUCURSAL_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetSUCURSAL_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteSUCURSAL_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetDC_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteDC_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetDC_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteDC_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetCUENTA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteCUENTA_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetCUENTA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteCUENTA_CLIENTE].AsString := aValue; +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.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_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.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteUSUARIO].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteUSUARIO].AsString := aValue; +end; + + +{ TRecibosCliente_RefreshDataTableRules } +constructor TRecibosCliente_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosCliente_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosCliente_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshID].AsInteger; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCliente_RefreshID].AsInteger := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshREFERENCIA].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshREFERENCIA].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshSITUACION].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshSITUACION].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshID_FACTURA].AsInteger; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCliente_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetID_REMESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshID_REMESA].AsInteger; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetID_REMESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCliente_RefreshID_REMESA].AsInteger := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetREFERENCIA_REMESAValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshREFERENCIA_REMESA].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshREFERENCIA_REMESA].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshDESCRIPCION].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshDESCRIPCION].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshOBSERVACIONES].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshOBSERVACIONES].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE].AsCurrency; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE].AsCurrency := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCliente_RefreshOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCliente_RefreshIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshID_CLIENTE].AsInteger; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCliente_RefreshID_CLIENTE].AsInteger := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetNOMBRE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshNOMBRE_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshNOMBRE_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshNIF_CIF_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshNIF_CIF_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetENTIDAD_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshENTIDAD_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetENTIDAD_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshENTIDAD_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetSUCURSAL_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshSUCURSAL_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetSUCURSAL_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshSUCURSAL_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetDC_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshDC_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetDC_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshDC_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetCUENTA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshCUENTA_CLIENTE].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetCUENTA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshCUENTA_CLIENTE].AsString := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshID_EMPRESA].AsInteger; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCliente_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCliente_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosCliente_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosCliente_RefreshUSUARIO].AsString; +end; + +procedure TRecibosCliente_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCliente_RefreshUSUARIO].AsString := aValue; +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.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.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.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.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.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.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.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.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.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_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.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PagosClienteUSUARIO].AsString; +end; + +procedure TPagosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteUSUARIO].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RecibosCliente, TRecibosClienteDataTableRules); + RegisterDataTableRules(RID_RecibosCliente_Refresh, TRecibosCliente_RefreshDataTableRules); + RegisterDataTableRules(RID_PagosCliente, TPagosClienteDataTableRules); + +end. 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 00000000..739761a7 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas @@ -0,0 +1,1581 @@ +unit schRecibosClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_RecibosClienteDelta = '{F6DA2E5E-D77D-4351-85DF-EA08668F5466}'; + RID_RecibosCliente_RefreshDelta = '{D77FE124-C90E-435C-A2E9-7307C424C438}'; + RID_PagosClienteDelta = '{FFEFE23F-1230-4E8C-AD77-C4389F31B9F6}'; + +type + { IRecibosClienteDelta } + IRecibosClienteDelta = interface(IRecibosCliente) + ['{F6DA2E5E-D77D-4351-85DF-EA08668F5466}'] + { Property getters and setters } + function GetOldIDValue : Integer; + 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_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldNIF_CIF_CLIENTEValue : String; + function GetOldENTIDAD_CLIENTEValue : String; + function GetOldSUCURSAL_CLIENTEValue : String; + function GetOldDC_CLIENTEValue : String; + function GetOldCUENTA_CLIENTEValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + 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_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldENTIDAD_CLIENTE : String read GetOldENTIDAD_CLIENTEValue; + property OldSUCURSAL_CLIENTE : String read GetOldSUCURSAL_CLIENTEValue; + property OldDC_CLIENTE : String read GetOldDC_CLIENTEValue; + property OldCUENTA_CLIENTE : String read GetOldCUENTA_CLIENTEValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetOldID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetOldIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + function GetOldNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetENTIDAD_CLIENTEValue: String; virtual; + function GetOldENTIDAD_CLIENTEValue: String; virtual; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); virtual; + function GetSUCURSAL_CLIENTEValue: String; virtual; + function GetOldSUCURSAL_CLIENTEValue: String; virtual; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); virtual; + function GetDC_CLIENTEValue: String; virtual; + function GetOldDC_CLIENTEValue: String; virtual; + procedure SetDC_CLIENTEValue(const aValue: String); virtual; + function GetCUENTA_CLIENTEValue: String; virtual; + function GetOldCUENTA_CLIENTEValue: String; virtual; + procedure SetCUENTA_CLIENTEValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE : String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE : String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property OldENTIDAD_CLIENTE : String read GetOldENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE : String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property OldSUCURSAL_CLIENTE : String read GetOldSUCURSAL_CLIENTEValue; + property DC_CLIENTE : String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property OldDC_CLIENTE : String read GetOldDC_CLIENTEValue; + property CUENTA_CLIENTE : String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property OldCUENTA_CLIENTE : String read GetOldCUENTA_CLIENTEValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosCliente_RefreshDelta } + IRecibosCliente_RefreshDelta = interface(IRecibosCliente_Refresh) + ['{D77FE124-C90E-435C-A2E9-7307C424C438}'] + { Property getters and setters } + function GetOldIDValue : Integer; + 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_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldNIF_CIF_CLIENTEValue : String; + function GetOldENTIDAD_CLIENTEValue : String; + function GetOldSUCURSAL_CLIENTEValue : String; + function GetOldDC_CLIENTEValue : String; + function GetOldCUENTA_CLIENTEValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + 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_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldENTIDAD_CLIENTE : String read GetOldENTIDAD_CLIENTEValue; + property OldSUCURSAL_CLIENTE : String read GetOldSUCURSAL_CLIENTEValue; + property OldDC_CLIENTE : String read GetOldDC_CLIENTEValue; + property OldCUENTA_CLIENTE : String read GetOldCUENTA_CLIENTEValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosCliente_RefreshBusinessProcessorRules } + TRecibosCliente_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosCliente_Refresh, IRecibosCliente_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetOldID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetOldIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + function GetOldNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetENTIDAD_CLIENTEValue: String; virtual; + function GetOldENTIDAD_CLIENTEValue: String; virtual; + procedure SetENTIDAD_CLIENTEValue(const aValue: String); virtual; + function GetSUCURSAL_CLIENTEValue: String; virtual; + function GetOldSUCURSAL_CLIENTEValue: String; virtual; + procedure SetSUCURSAL_CLIENTEValue(const aValue: String); virtual; + function GetDC_CLIENTEValue: String; virtual; + function GetOldDC_CLIENTEValue: String; virtual; + procedure SetDC_CLIENTEValue(const aValue: String); virtual; + function GetCUENTA_CLIENTEValue: String; virtual; + function GetOldCUENTA_CLIENTEValue: String; virtual; + procedure SetCUENTA_CLIENTEValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property NIF_CIF_CLIENTE : String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property ENTIDAD_CLIENTE : String read GetENTIDAD_CLIENTEValue write SetENTIDAD_CLIENTEValue; + property OldENTIDAD_CLIENTE : String read GetOldENTIDAD_CLIENTEValue; + property SUCURSAL_CLIENTE : String read GetSUCURSAL_CLIENTEValue write SetSUCURSAL_CLIENTEValue; + property OldSUCURSAL_CLIENTE : String read GetOldSUCURSAL_CLIENTEValue; + property DC_CLIENTE : String read GetDC_CLIENTEValue write SetDC_CLIENTEValue; + property OldDC_CLIENTE : String read GetOldDC_CLIENTEValue; + property CUENTA_CLIENTE : String read GetCUENTA_CLIENTEValue write SetCUENTA_CLIENTEValue; + property OldCUENTA_CLIENTE : String read GetOldCUENTA_CLIENTEValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPagosClienteDelta } + IPagosClienteDelta = interface(IPagosCliente) + ['{FFEFE23F-1230-4E8C-AD77-C4389F31B9F6}'] + { 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_RECIBOValue: Integer; virtual; + function GetOldID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + function GetOldFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetTITULARValue: String; virtual; + function GetOldTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_RECIBO : Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property FECHA_PAGO : DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property OldTITULAR : String read GetOldTITULARValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteSITUACION]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_FACTURA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_REMESA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA_REMESA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_EMISION]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDESCRIPCION]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOBSERVACIONES]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOTROS_GASTOS]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_TOTAL]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_FACTURA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := 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; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_FACTURA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteNOMBRE_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNIF_CIF_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNIF_CIF_CLIENTEValue: String; +begin + result := 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; + +function TRecibosClienteBusinessProcessorRules.GetENTIDAD_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteENTIDAD_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldENTIDAD_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteENTIDAD_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetENTIDAD_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteENTIDAD_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetSUCURSAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSUCURSAL_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldSUCURSAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteSUCURSAL_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetSUCURSAL_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSUCURSAL_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetDC_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDC_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDC_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDC_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDC_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDC_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetCUENTA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCUENTA_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldCUENTA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteCUENTA_CLIENTE]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetCUENTA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCUENTA_CLIENTE] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_EMPRESA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_ALTA]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_MODIFICACION]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION] := aValue; +end; + +function TRecibosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteUSUARIO]; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO] := aValue; +end; + + +{ TRecibosCliente_RefreshBusinessProcessorRules } +constructor TRecibosCliente_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosCliente_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshID]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshREFERENCIA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshREFERENCIA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshREFERENCIA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshSITUACION]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshSITUACION]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshSITUACION] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_FACTURA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshID_FACTURA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_FACTURA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_REMESA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshID_REMESA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_REMESA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshREFERENCIA_REMESA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshREFERENCIA_REMESA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshREFERENCIA_REMESA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_EMISION]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFECHA_EMISION]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_EMISION] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_VENCIMIENTO]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFECHA_VENCIMIENTO]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_VENCIMIENTO] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshDESCRIPCION]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshDESCRIPCION]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshDESCRIPCION] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshOBSERVACIONES]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshOBSERVACIONES]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshOBSERVACIONES] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshIMPORTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshOTROS_GASTOS]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshOTROS_GASTOS]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshOTROS_GASTOS] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE_TOTAL]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshIMPORTE_TOTAL]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_FACTURA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFECHA_FACTURA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_FACTURA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFORMA_PAGO_FACTURA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFORMA_PAGO_FACTURA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFORMA_PAGO_FACTURA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE_FACTURA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshIMPORTE_FACTURA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshIMPORTE_FACTURA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshID_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshNOMBRE_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshNOMBRE_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshNOMBRE_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshNIF_CIF_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshNIF_CIF_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshNIF_CIF_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetENTIDAD_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshENTIDAD_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldENTIDAD_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshENTIDAD_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetENTIDAD_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshENTIDAD_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetSUCURSAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshSUCURSAL_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldSUCURSAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshSUCURSAL_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetSUCURSAL_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshSUCURSAL_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetDC_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshDC_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldDC_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshDC_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetDC_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshDC_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetCUENTA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshCUENTA_CLIENTE]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldCUENTA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshCUENTA_CLIENTE]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetCUENTA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshCUENTA_CLIENTE] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_EMPRESA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshID_EMPRESA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshID_EMPRESA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_ALTA]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFECHA_ALTA]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_ALTA] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_MODIFICACION]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshFECHA_MODIFICACION]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshUSUARIO]; +end; + +function TRecibosCliente_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCliente_RefreshUSUARIO]; +end; + +procedure TRecibosCliente_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCliente_RefreshUSUARIO] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID_RECIBO]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetID_RECIBOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTIPO]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_PAGO]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTITULAR]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteENTIDAD]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteSUCURSAL]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteDC]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteCUENTA]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_ALTA]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_MODIFICACION]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION] := aValue; +end; + +function TPagosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteUSUARIO]; +end; + +procedure TPagosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RecibosClienteDelta, TRecibosClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosCliente_RefreshDelta, TRecibosCliente_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PagosClienteDelta, TPagosClienteBusinessProcessorRules); + +end. 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 00000000..51ff3dee --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas @@ -0,0 +1,77 @@ +{ +=============================================================================== + 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 uBizPagosCliente; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf; + +const + BIZ_CLIENT_IBIZPAGOSCLIENTE = 'Client.IBizPagosCliente'; + + CTE_PAGO = 'Pago'; + CTE_DEVOLUCION = 'Devolución'; + +type + IBizPagosCliente = interface(IPagosCliente) + ['{F53F105E-83B5-4EB8-94CA-EA7E470D26F7}'] + end; + + TBizPagosCliente = class(TPagosClienteDataTableRules, IBizPagosCliente) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +uses + SysUtils, uDataTableUtils; + +{ TBizPagosCliente } + +constructor TBizPagosCliente.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizPagosCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZPAGOSCLIENTE, TBizPagosCliente); + +finalization + +end. + 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 00000000..d84eb802 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.pas @@ -0,0 +1,177 @@ +{ +=============================================================================== + 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 uBizRecibosCliente; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf, + uBizPagosCliente, 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; + end; + + TBizRecibosCliente = class(TRecibosClienteDataTableRules, IBizRecibosCliente, ISeleccionable) + protected + FPagos : IBizPagosCliente; + FPagosLink : 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; + procedure OnNewRecord(Sender: TDADataTable); override; + + procedure SetID_REMESAValue(const aValue: Integer); override; + + public + 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; + +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; + +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; + FPagosLink := TDADataSource.Create(NIL); + FPagosLink.DataTable := aDataTable; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRecibosCliente.Destroy; +begin + FPagos := NIL; + FreeAndNIL(FPagosLink); + 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; + ID := GetRecNo; // -1, -2, -3... + 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 00000000..0ec9931f --- /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.dpk b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk new file mode 100644 index 00000000..b0bb5b59 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk @@ -0,0 +1,42 @@ +package RecibosCliente_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + RecibosCliente_controller, + RecibosCliente_view; + +contains + uPluginRecibosCliente in 'uPluginRecibosCliente.pas' {PluginRecibosCliente}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dfm new file mode 100644 index 00000000..8e497423 --- /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 = 106 + 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 00000000..a1e7097d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.pas @@ -0,0 +1,74 @@ +unit uPluginRecibosCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCRecibosCliente = interface(IInterface) + ['{9078C6E6-6733-4CD8-BCBF-DEC48A322CF7}'] + end; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + 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; + uRecibosClienteViewRegister.RegisterViews; +end; + +destructor TPluginRecibosCliente.Destroy; +begin + uRecibosClienteViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginRecibosCliente); + +finalization + UnRegisterModuleClass(TPluginRecibosCliente); + +end. 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 00000000..39427bb8 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dfm @@ -0,0 +1,755 @@ +object RptRecibosCliente: TRptRecibosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID,'#10' V_RECIBOS_CLIENTE.ID_EMPRES' + + 'A,'#10' V_RECIBOS_CLIENTE.REFERENCIA,'#10' V_RECIBOS_CLIENTE.SITUA' + + 'CION,'#10' V_RECIBOS_CLIENTE.ID_FACTURA,'#10' V_RECIBOS_CLIENTE.ID' + + '_REMESA,'#10' V_RECIBOS_CLIENTE.REFERENCIA_REMESA,'#10' V_RECIBOS_' + + 'CLIENTE.FECHA_EMISION,'#10' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO,'#10 + + ' V_RECIBOS_CLIENTE.DESCRIPCION,'#10' V_RECIBOS_CLIENTE.OBSERVA' + + 'CIONES,'#10' V_RECIBOS_CLIENTE.IMPORTE,'#10' V_RECIBOS_CLIENTE.OTR' + + 'OS_GASTOS,'#10' V_RECIBOS_CLIENTE.IMPORTE_TOTAL,'#10' V_RECIBOS_CL' + + 'IENTE.FECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' ' + + ' V_RECIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.NOMB' + + 'RE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF_CIF_CLIENTE,'#10' V_RECIBOS' + + '_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIBOS_CLIENTE.SUCURSAL_CLIENTE' + + ','#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' V_RECIBOS_CLIENTE.CUENTA' + + '_CLIENTE,'#10#10' EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZ' + + 'ON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBLACI' + + 'ON as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EMP' + + 'RESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPRE' + + 'SAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1' + + ','#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS' + + '.LOGOTIPO'#10#10'FROM'#10' V_RECIBOS_CLIENTE'#10' LEFT OUTER JOIN EMPRESAS O' + + 'N (EMPRESAS.ID = V_RECIBOS_CLIENTE.ID_EMPRESA)'#10'WHERE'#10' V_RECIBOS' + + '_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 = '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 = '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 = '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 + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.Description.Strings = ( + 'Demonstrates how to create simple list report.') + ReportOptions.LastChange = 39169.739683333330000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '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 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end> + Variables = <> + Style = <> + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + 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 00000000..97eb3d1a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas @@ -0,0 +1,82 @@ +unit uRptRecibosCliente_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; + +type + TRptRecibosCliente = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Cabecera: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarRecibo(const ID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer; + +const + rptInforme = 'InfReciboCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + +{ TRptReciboCliente } + + +procedure TRptRecibosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptRecibosCliente.GenerarRecibo(const ID: Integer): Binary; +var + dsMaster: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..ca73f3f4 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm @@ -0,0 +1,2078 @@ +object srvRecibosCliente: TsrvRecibosCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schRecibosCliente + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 247 + Width = 347 + object schRecibosCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_CLIENTE' + SQL = + 'SELECT ID,'#10' REFERENCIA,'#10' SITUACION,'#10' ID_FACTUR' + + 'A,'#10' ID_REMESA,'#10' REFERENCIA_REMESA,'#10' FECHA_EMIS' + + 'ION,'#10' FECHA_VENCIMIENTO,'#10' DESCRIPCION,'#10' OBSERV' + + 'ACIONES,'#10' IMPORTE,'#10' OTROS_GASTOS,'#10' IMPORTE_TOT' + + 'AL,'#10' FECHA_FACTURA,'#10' FORMA_PAGO_FACTURA,'#10' IMPO' + + 'RTE_FACTURA,'#10' ID_CLIENTE,'#10' NOMBRE_CLIENTE,'#10' NI' + + 'F_CIF_CLIENTE,'#10' ENTIDAD_CLIENTE,'#10' SUCURSAL_CLIENTE,'#10 + + ' DC_CLIENTE,'#10' CUENTA_CLIENTE,'#10' ID_EMPRESA,'#10' ' + + ' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO'#10#10'FROM ' + + 'V_RECIBOS_CLIENTE' + 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 = '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 = '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 = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end> + end> + Name = 'RecibosCliente' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ID' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ID_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_REFERENCIA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FECHA_EMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_NOMBRE_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_NIF_CIF_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ENTIDAD_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_SUCURSAL_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_DC_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_CUENTA_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_CLIENTE' + SQL = + 'SELECT ID,'#10' REFERENCIA,'#10' SITUACION,'#10' ID_FACTUR' + + 'A,'#10' ID_REMESA,'#10' REFERENCIA_REMESA,'#10' FECHA_EMIS' + + 'ION,'#10' FECHA_VENCIMIENTO,'#10' DESCRIPCION,'#10' OBSERV' + + 'ACIONES,'#10' IMPORTE,'#10' OTROS_GASTOS,'#10' IMPORTE_TOT' + + 'AL,'#10' FECHA_FACTURA,'#10' FORMA_PAGO_FACTURA,'#10' IMPO' + + 'RTE_FACTURA,'#10' ID_CLIENTE,'#10' NOMBRE_CLIENTE,'#10' NI' + + 'F_CIF_CLIENTE,'#10' ENTIDAD_CLIENTE,'#10' SUCURSAL_CLIENTE,'#10 + + ' DC_CLIENTE,'#10' CUENTA_CLIENTE,'#10' ID_EMPRESA,'#10' ' + + ' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO'#10#10'FROM ' + + 'V_RECIBOS_CLIENTE'#10'WHERE'#10' ID = :ID' + 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 = '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 = '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 = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end> + end> + Name = 'RecibosCliente_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ID' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ID_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_REFERENCIA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ID_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_NOMBRE_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_NIF_CIF_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ENTIDAD_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_SUCURSAL_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_DC_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_CUENTA_CLIENTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_Refresh_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_CLIENTE' + SQL = + 'SELECT '#10' ID, ID_RECIBO, TIPO, FECHA_PAGO, TITULAR, ENTIDAD, '#10 + + ' SUCURSAL, DC, CUENTA, FECHA_ALTA, FECHA_MODIFICACION, '#10' U' + + 'SUARIO'#10' '#10'FROM PAGOS_CLIENTE'#10'WHERE ID_RECIBO = :ID'#10'ORDER BY ID' + + ' /*Muy importante no quitar*/' + StatementType = stSQL + 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 = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_ID_RECIBO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_FECHA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PagosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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 = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert RecibosCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RecibosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert PagosCliente' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PagosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update RecibosCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RecibosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PagosCliente' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PagosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PagosCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PagosCliente' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete RecibosCliente' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RecibosCliente' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object bpRecibosCliente: TDABusinessProcessor + Schema = schRecibosCliente + InsertCommandName = 'Insert_RecibosCliente' + DeleteCommandName = 'Delete_RecibosCliente' + UpdateCommandName = 'Update_RecibosCliente' + RefreshDatasetName = 'RecibosCliente_Refresh' + ReferencedDataset = 'RecibosCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 24 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'RecibosCliente_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SITUACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_VENCIMIENTO' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCRIPCION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'OBSERVACIONES' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FORMA_PAGO_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_FACTURA' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NOMBRE_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF_CIF_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ENTIDAD_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SUCURSAL_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DC_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CUENTA_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SITUACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_VENCIMIENTO' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCRIPCION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'OBSERVACIONES' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_Refresh_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FORMA_PAGO_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_FACTURA' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_Refresh_NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NOMBRE_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'NIF_CIF_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ENTIDAD_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SUCURSAL_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DC_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CUENTA_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_Refresh_OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_TOTAL' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_Refresh_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_TOTAL' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_Refresh_ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_CLIENTE' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end> + Left = 48 + Top = 152 + end + object bpPagosCliente: TDABusinessProcessor + Schema = schRecibosCliente + InsertCommandName = 'Insert_PagosCliente' + DeleteCommandName = 'Delete_PagosCliente' + UpdateCommandName = 'Update_PagosCliente' + ReferencedDataset = 'PagosCliente' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + 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 00000000..4c9ceb1f --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas @@ -0,0 +1,105 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvRecibosProveedor } + TsrvRecibosCliente = class(TDARemoteService, IsrvRecibosCliente) + DABINAdapter: TDABINAdapter; + bpRecibosCliente: TDABusinessProcessor; + bpPagosCliente: TDABusinessProcessor; + schRecibosCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvRecibosProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvRecibosCliente.GenerateReport(const ID: Integer): Binary; +var + AReportGenerator : TRptRecibosCliente; +begin + AReportGenerator := TRptRecibosCliente.Create(nil); + try + Result := AReportGenerator.GenerarRecibo(ID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvRecibosCliente.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..c256e839 --- /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.dpk b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk new file mode 100644 index 00000000..71be4e52 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk @@ -0,0 +1,100 @@ +package RecibosCliente_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + Base, + GUIBase, + RecibosCliente_model, + RecibosCliente_data, + RecibosCliente_controller, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + JvPageCompsD10R, + dxLayoutControlD10, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + frx10, + fs10, + fqb100, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb; + +contains + uRecibosClienteViewRegister in 'uRecibosClienteViewRegister.pas', + uEditorRecibosCliente in 'uEditorRecibosCliente.pas' {fEditorRecibosCliente: TfEditorRecibosCliente}, + uViewRecibosCliente in 'uViewRecibosCliente.pas' {frViewRecibosCliente: TFrame}, + uViewReciboCliente in 'uViewReciboCliente.pas' {frViewReciboCliente: TFrame}, + uEditorReciboCliente in 'uEditorReciboCliente.pas' {fEditorReciboCliente: TfEditorReciboCliente}, + uViewPagosCliente in 'uViewPagosCliente.pas' {frViewPagosCliente: TFrame}, + uEditorElegirRecibosCliente in 'uEditorElegirRecibosCliente.pas' {fEditorElegirRecibosCliente: TfEditorElegirRecibosCliente}, + uEditorFechaPago in 'uEditorFechaPago.pas' {fEditorFechaPago}, + uEditorReciboClienteReport in 'uEditorReciboClienteReport.pas' {fEditorReciboClienteReport: TfEditorReciboClienteReport}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm new file mode 100644 index 00000000..c0866cb3 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm @@ -0,0 +1,347 @@ +inherited fEditorElegirRecibosCliente: TfEditorElegirRecibosCliente + Caption = 'Seleccionar recibos de cliente' + ClientWidth = 654 + ExplicitWidth = 662 + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader [0] + Left = 0 + Top = 0 + Width = 654 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Seleccione recibos de cliente') + Comments.Strings = ( + ' ') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = -21 + ExplicitWidth = 656 + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 144 + Width = 654 + Visible = False + ExplicitTop = 144 + ExplicitWidth = 654 + inherited Image1: TImage + Left = 627 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 171 + Width = 654 + Height = 49 + ExplicitTop = 171 + ExplicitWidth = 654 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 117 + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 117 + Top = 23 + DockPos = 104 + DockRow = 1 + Visible = False + ExplicitLeft = 117 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 654 + end + end + inherited StatusBar: TJvStatusBar + Width = 654 + ExplicitTop = 645 + ExplicitWidth = 654 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 609 + Width = 654 + 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 = 609 + 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 + inherited frViewRecibosCliente1: TfrViewRecibosCliente [5] + Top = 220 + Width = 654 + Height = 389 + ExplicitTop = 220 + ExplicitWidth = 654 + ExplicitHeight = 389 + inherited cxGrid: TcxGrid + Width = 654 + Height = 389 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 654 + ExplicitHeight = 389 + 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 = 60 + 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 = 296 + Top = 50 + Width = 17 + Height = 13 + Caption = 'y el' + end + object txtFiltroTodo: TcxTextEdit + Left = 168 + 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 = 168 + 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 = 320 + 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 = 145 + Height = 17 + Caption = 'Recibos con fechas entre:' + TabOrder = 4 + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object Button1: TBitBtn + Left = 470 + 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 + 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 cliente/Views/uEditorElegirRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas new file mode 100644 index 00000000..1bc1a1a2 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas @@ -0,0 +1,211 @@ +{ +=============================================================================== + 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 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, JvgWizardHeader, StdCtrls, + + uViewRecibosCliente, uEditorRecibosCliente, uBizRecibosCliente, uIEditorElegirRecibosCliente, + Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, + cxContainer, cxEdit, cxTextEdit, TBXDkPanels; + + +type + TfEditorElegirRecibosCliente = class(TfEditorRecibosCliente, IEditorElegirRecibosCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + JvgWizardHeader1: TJvgWizardHeader; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlFiltrar: TTBXDockablePanel; + Label1: TLabel; + txtFiltroTodo: TcxTextEdit; + edtFechaFiltro1: TcxDateEdit; + edtFechaFiltro2: TcxDateEdit; + rbTodo: TcxRadioButton; + rbFechas: TcxRadioButton; + Button1: TBitBtn; + 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, + uGridUtils, 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 + ShowMessage('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 := JvgWizardHeader1.Comments.Text; +end; + +function TfEditorElegirRecibosCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirRecibosCliente.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := 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.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm new file mode 100644 index 00000000..b4b83e15 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm @@ -0,0 +1,78 @@ +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.OnChange = eFechaPagoPropertiesChange + 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 cliente/Views/uEditorFechaPago.pas b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas new file mode 100644 index 00000000..722b27cc --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas @@ -0,0 +1,55 @@ +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 eFechaPagoPropertiesChange(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} + +procedure TfEditorFechaPago.eFechaPagoPropertiesChange(Sender: TObject); +begin + FechaPago := eFechaPago.Date; +end; + +procedure TfEditorFechaPago.FormShow(Sender: TObject); +begin + eFechaPago.Date := Date; +end; + +function TfEditorFechaPago.GetFechaPago: TDateTime; +begin + Result := FFechaPago; +end; + +procedure TfEditorFechaPago.SetFechaPago(const Value: TDateTime); +begin + FFechaPago := Value; +end; + +end. 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 00000000..d62948be --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm @@ -0,0 +1,290 @@ +inherited fEditorReciboCliente: TfEditorReciboCliente + Caption = 'Recibo de cliente' + ClientHeight = 596 + ClientWidth = 691 + OnClose = CustomEditorClose + ExplicitWidth = 699 + ExplicitHeight = 630 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 691 + Caption = 'Recibo de cliente' + ExplicitWidth = 691 + inherited Image1: TImage + Left = 664 + 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 + end + inherited TBXDock: TTBXDock + Width = 691 + ExplicitWidth = 691 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 419 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 691 + end + end + inherited pgPaginas: TPageControl + Width = 691 + Height = 501 + ExplicitWidth = 691 + ExplicitHeight = 501 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 683 + ExplicitHeight = 473 + inline frViewReciboCliente1: TfrViewReciboCliente + Left = 0 + Top = 0 + Width = 683 + 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 = 683 + ExplicitHeight = 335 + inherited dxLayoutControl1: TdxLayoutControl + Width = 683 + Height = 335 + ExplicitWidth = 683 + ExplicitHeight = 321 + DesignSize = ( + 683 + 335) + inherited Bevel1: TBevel + Width = 210 + ExplicitWidth = 210 + end + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 50 + Width = 50 + end + inherited eSituacion: TcxDBTextEdit + ExplicitWidth = 216 + Width = 216 + end + inherited edtFechaVencimiento: TcxDBDateEdit + ExplicitWidth = 216 + Width = 216 + end + inherited memObservaciones: TcxDBMemo + Left = 321 + ExplicitLeft = 321 + ExplicitWidth = 211 + ExplicitHeight = 44 + Height = 44 + Width = 211 + end + inherited eImporte: TcxDBCurrencyEdit + Properties.OnValidate = frViewReciboCliente1eImportePropertiesValidate + ExplicitWidth = 111 + Width = 111 + end + inherited eFechaEmision: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 20 + Width = 20 + end + inherited eFormaPago: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 42 + Width = 42 + end + inherited eImporteTotal: TcxDBCurrencyEdit + Left = 397 + Style.IsFontAssigned = True + ExplicitLeft = 397 + ExplicitWidth = 182 + Width = 182 + end + inherited eNombreCliente: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 171 + Width = 171 + end + inherited eNifCif: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 147 + Width = 147 + end + inherited eEntidad: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 101 + Width = 101 + end + inherited eSucursal: TcxDBTextEdit + Left = 524 + ExplicitLeft = 524 + ExplicitWidth = 94 + Width = 94 + end + inherited eDC: TcxDBTextEdit + Left = 624 + ExplicitLeft = 624 + ExplicitWidth = 37 + Width = 37 + end + inherited eCuenta: TcxDBTextEdit + Left = 397 + ExplicitLeft = 397 + ExplicitWidth = 83 + Width = 83 + end + inherited eRemesa: TcxDBTextEdit + ExplicitWidth = 113 + Width = 113 + end + inherited eOtrosGastos: TcxDBCurrencyEdit + ExplicitWidth = 111 + Width = 111 + end + inherited eImporteTotalRecibo: TcxCurrencyEdit + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Style.Font.Style = [fsBold] + Style.IsFontAssigned = True + ExplicitWidth = 111 + Width = 111 + end + inherited edtFechaEmision: TcxDBDateEdit + DataBinding.DataField = 'FECHA_EMISION' + ExplicitWidth = 193 + Width = 193 + end + end + end + inline frViewPagosCliente1: TfrViewPagosCliente + Left = 0 + Top = 335 + Width = 683 + Height = 138 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 340 + ExplicitWidth = 683 + ExplicitHeight = 133 + inherited dxLayoutControl1: TdxLayoutControl + Width = 683 + Height = 138 + ExplicitWidth = 683 + ExplicitHeight = 133 + end + inherited dxLayoutControl2: TdxLayoutControl + Width = 683 + Height = 138 + ExplicitWidth = 683 + ExplicitHeight = 133 + inherited ToolBar1: TToolBar + Width = 666 + ExplicitWidth = 666 + end + inherited ListaPagosCliente: TcxGrid + Width = 605 + Height = 262 + ExplicitWidth = 605 + ExplicitHeight = 262 + inherited ListaPagosClienteDBTableView1: TcxGridDBTableView + inherited ListaPagosClienteDBTableView1TIPO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + OnExecute = frViewPagosCliente1actAnadirExecute + end + inherited actModificar: TAction + OnExecute = frViewPagosCliente1actModificarExecute + OnUpdate = frViewPagosCliente1actModificarUpdate + end + inherited actEliminar: TAction + OnExecute = frViewPagosCliente1actEliminarExecute + OnUpdate = frViewPagosCliente1actEliminarUpdate + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 577 + Width = 691 + Panels = < + item + Width = 200 + end> + ExplicitTop = 577 + ExplicitWidth = 691 + end + inherited EditorActionList: TActionList + 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 JvFormStorage: TJvFormStorage + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + inherited dsDataTable: TDADataSource + Left = 8 + Top = 136 + 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 00000000..9b4e3d73 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.pas @@ -0,0 +1,293 @@ +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; + +type + TfEditorReciboCliente = class(TfEditorDBItem, IEditorReciboCliente) + DADataSource1: TDADataSource; + frViewReciboCliente1: TfrViewReciboCliente; + frViewPagosCliente1: TfrViewPagosCliente; + 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); + + 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; + + 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; + +{$R *.dfm} + +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; + frViewReciboCliente1.eImporte.Enabled := False; + frViewReciboCliente1.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 ningún almacén asignado'); + + Recibo.DataTable.Active := True; +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actAnadirExecute(Sender: TObject); +begin + inherited; + + //En el caso de haber añadido el cobro del recibo ya no podremos modificarlo + if FController.AnadirPago(Recibo) then + DeshabilitarRecibo + //Podremos modificar si anulamos el cobro mediante una devolución + else + HabilitarRecibo; +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 devolución 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 podrán 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 > frViewReciboCliente1.eImporte.DataBinding.Field.Value) then + begin + DisplayValue := frViewReciboCliente1.eImporte.DataBinding.Field.Value; + ErrorText := 'El importe debe ser menor o igual que el actual'; + Error := True; + end; +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; + frViewReciboCliente1.eImporte.Enabled := True; + frViewReciboCliente1.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'; + 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 +// (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; + + 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.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm new file mode 100644 index 00000000..8b34f973 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm @@ -0,0 +1,17 @@ +inherited fEditorReciboClientePreview: TfEditorReciboClientePreview + Caption = 'Previsualizar el recibo' + ExplicitWidth = 658 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + Left = 623 + end + end + 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 00000000..313ed54b --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.pas @@ -0,0 +1,23 @@ +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; + +type + TfEditorReciboClientePreview = class(TfEditorPreview, IEditorRecibosClientePreview) + end; + + +implementation +{$R *.dfm} + +end. 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 00000000..3749f246 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dfm @@ -0,0 +1,2148 @@ +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 = 638 + 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 = 638 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 425 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 645 + end + end + inherited StatusBar: TJvStatusBar + Top = 542 + Width = 645 + ExplicitTop = 645 + ExplicitWidth = 638 + 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 = 638 + ExplicitHeight = 543 + inherited cxGrid: TcxGrid + Width = 645 + Height = 312 + ExplicitWidth = 638 + ExplicitHeight = 415 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + 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 = 645 + ExplicitWidth = 638 + inherited TBXDock1: TTBXDock + Width = 645 + ExplicitWidth = 638 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 645 + inherited dxLayoutControl1: TdxLayoutControl + Width = 641 + ExplicitWidth = 634 + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 199 + Width = 199 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 460 + ExplicitLeft = 460 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 641 + ExplicitWidth = 634 + inherited tbxBotones: TTBXToolbar + Width = 631 + ExplicitWidth = 624 + end + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 414 + ExplicitTop = 517 + ExplicitWidth = 638 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 645 + ExplicitWidth = 638 + inherited TBXToolbar1: TTBXToolbar + Width = 635 + ExplicitWidth = 628 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.776488344910000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewRecibosCliente1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 + 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 seleccionado' + 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 seleccionado' + 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 +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 00000000..f233f570 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.pas @@ -0,0 +1,214 @@ +{ +=============================================================================== + 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; + +type + + TfEditorRecibosCliente = class(TfEditorGridBase, IEditorRecibosCliente) + frViewRecibosCliente1: TfrViewRecibosCliente; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + procedure FormShow(Sender: TObject); + 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; + 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; + +{$R *.dfm} + +{ +*************************** TfEditorRecibosCliente *************************** +} +constructor TfEditorRecibosCliente.Create(AOwner: TComponent); +begin + inherited; + FController := TRecibosClienteController.Create; + 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 + 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; +begin + //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 + FController.Print(FRecibosCliente); + 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.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de recibos de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRecibosCliente.PrevisualizarInterno; +var + Respuesta : Integer; +begin + //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 + FController.Preview(FRecibosCliente); + end; + end; + end; + end; +end; + +procedure TfEditorRecibosCliente.SetController(const Value: IRecibosClienteController); +begin + FController := Value; +end; + +procedure TfEditorRecibosCliente.SetRecibosCliente(const Value: IBizRecibosCliente); +begin + FRecibosCliente := Value; + dsDataTable.DataTable := FRecibosCliente.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRecibosCliente).Recibos := FRecibosCliente; +end; + +end. 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 00000000..8186156e --- /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 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 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.dfm b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm new file mode 100644 index 00000000..bcc1d626 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm @@ -0,0 +1,336 @@ +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 + 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 + 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 = 2 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 2 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 2 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 2 + 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 = 'Lista de pagos' + 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 + 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 00000000..fb2d23b6 --- /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; + +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/uViewReciboCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm new file mode 100644 index 00000000..c825d320 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm @@ -0,0 +1,666 @@ +inherited frViewReciboCliente: TfrViewReciboCliente + Width = 690 + Height = 332 + ExplicitWidth = 690 + ExplicitHeight = 332 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 690 + Height = 332 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 690 + 332) + object Bevel1: TBevel + Left = 120 + Top = 243 + Width = 210 + Height = 9 + Shape = bsBottomLine + end + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 129 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 129 + end + object memObservaciones: TcxDBMemo + Left = 331 + Top = 272 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Height = 49 + Width = 274 + end + object eImporte: TcxDBCurrencyEdit + Left = 120 + Top = 189 + AutoSize = False + DataBinding.DataField = 'IMPORTE' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Properties.OnEditValueChanged = eImportePropertiesEditValueChanged + 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 = 5 + Height = 21 + Width = 194 + end + object eFechaEmision: TcxDBTextEdit + Left = 407 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 20 + end + object eFormaPago: TcxDBTextEdit + Left = 407 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 42 + end + object eImporteTotal: TcxDBCurrencyEdit + Left = 407 + Top = 84 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Height = 21 + Width = 182 + end + object eNombreCliente: TcxDBTextEdit + Left = 407 + Top = 167 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 171 + end + object eNifCif: TcxDBTextEdit + Left = 407 + Top = 140 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 147 + end + object eEntidad: TcxDBTextEdit + Left = 407 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ENTIDAD_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 90 + end + object eSucursal: TcxDBTextEdit + Left = 530 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'SUCURSAL_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 75 + end + object eDC: TcxDBTextEdit + Left = 618 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'DC_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 33 + end + object eCuenta: TcxDBTextEdit + Left = 407 + Top = 221 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'CUENTA_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 83 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 113 + end + object eOtrosGastos: TcxDBCurrencyEdit + Left = 120 + Top = 216 + AutoSize = False + DataBinding.DataField = 'OTROS_GASTOS' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Properties.OnEditValueChanged = eImportePropertiesEditValueChanged + 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 = 6 + Height = 21 + Width = 111 + end + object eImporteTotalRecibo: TcxCurrencyEdit + Left = 120 + Top = 263 + Enabled = False + 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 = 7 + Width = 121 + end + object edtFechaEmision: TcxDBDateEdit + Left = 120 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 113 + 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 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 = 'Importe del recibo' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe:' + Control = eImporte + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + Caption = 'Otros gastos:' + Control = eOtrosGastos + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item18: TdxLayoutItem + Caption = ' ' + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Importe total:' + Control = eImporteTotalRecibo + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + 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 dxLayoutControl1Item9: TdxLayoutItem + Caption = 'Total factura:' + Control = eImporteTotal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + 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 + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Entidad:' + Control = eEntidad + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Sucursal:' + Control = eSucursal + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'DC:' + Control = eDC + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'd. cuenta:' + Control = eCuenta + ControlOptions.ShowBorder = False + end + 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 + 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 00000000..9ea95657 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.pas @@ -0,0 +1,112 @@ +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; + +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; + dxLayoutControl1Item6: TdxLayoutItem; + eImporte: TcxDBCurrencyEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + eFechaEmision: TcxDBTextEdit; + dxLayoutControl1Item8: TdxLayoutItem; + eFormaPago: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + eImporteTotal: TcxDBCurrencyEdit; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + eNombreCliente: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eNifCif: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eEntidad: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eSucursal: TcxDBTextEdit; + dxLayoutControl1Item14: TdxLayoutItem; + eDC: TcxDBTextEdit; + dxLayoutControl1Item15: TdxLayoutItem; + eCuenta: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eRemesa: TcxDBTextEdit; + dxLayoutControl1Item17: TdxLayoutItem; + eOtrosGastos: TcxDBCurrencyEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + eImporteTotalRecibo: TcxCurrencyEdit; + dxLayoutControl1Item4: TdxLayoutItem; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item18: TdxLayoutItem; + Bevel1: TBevel; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Item19: TdxLayoutItem; + edtFechaEmision: TcxDBDateEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + procedure eImportePropertiesEditValueChanged(Sender: TObject); + 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 } + +procedure TfrViewReciboCliente.eImportePropertiesEditValueChanged(Sender: TObject); +begin + inherited; + eImporteTotalRecibo.Value := eImporte.Value + eOtrosGastos.Value; +end; + +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/uViewRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm new file mode 100644 index 00000000..e4715978 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm @@ -0,0 +1,296 @@ +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> + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 64 + 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> + 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' + 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 + 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 TBXDock1: TTBXDock + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 527 + inherited txtFiltroTodo: TcxTextEdit + Left = 124 + ExplicitLeft = 124 + ExplicitWidth = 393 + Width = 393 + end + inherited edtFechaIniFiltro: TcxDateEdit + Left = 124 + ExplicitLeft = 124 + ExplicitWidth = 199 + Width = 199 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 379 + ExplicitLeft = 379 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Emision entre la fecha:' + end + end + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 527 + ExplicitWidth = 527 + inherited tbxBotones: TTBXToolbar + Width = 517 + ExplicitWidth = 517 + end + 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 cxViewGridPopupMenu: TcxGridPopupMenu + Top = 144 + end + inherited ActionList1: TActionList + object actCliente: TAction + Caption = 'Cliente' + OnExecute = actClienteExecute + OnUpdate = actClienteUpdate + end + end + inherited cxStyleRepositoryInforme: TcxStyleRepository + Top = 184 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + Top = 184 + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 = 56 + Top = 48 + Bitmap = {} + 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 00000000..350463ea --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.pas @@ -0,0 +1,264 @@ +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, dxPScxGridLnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizRecibosCliente, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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) + PngImageList: TPngImageList; + 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; + 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); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FRecibos: IBizRecibosCliente; + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + procedure AnadirOtrosFiltros; override; + + public + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + end; + + +implementation + +uses + uDataModuleRecibosCliente, DateUtils; + +{$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('FECHA_EMISION'); + 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.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.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 := cxStylePendientes + else if (ASituacion = CTE_COBRADO) then + AStyle := cxStylePagados + else if (ASituacion = CTE_DEVUELTO) then + AStyle := cxStyleDevueltos; + 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('FECHA_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 00000000..9291ef45 --- /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.dpk b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk new file mode 100644 index 00000000..cdfaa973 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk @@ -0,0 +1,74 @@ +package RecibosProveedor_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + DataAbstract_D10, + Base, + GUIBase, + Usuarios, + Contactos_controller, + RecibosProveedor_model, + RecibosProveedor_data; + +contains + uRecibosProveedorController in 'uRecibosProveedorController.pas', + uIEditorRecibosProveedor in 'View\uIEditorRecibosProveedor.pas', + uIEditorReciboProveedor in 'View\uIEditorReciboProveedor.pas', + uPagosProveedorController in 'uPagosProveedorController.pas', + uIEditorRecibosProveedorPreview in 'View\uIEditorRecibosProveedorPreview.pas', + uRecibosProveedorReportController in 'uRecibosProveedorReportController.pas', + uIEditorFechaPagoProveedor in 'View\uIEditorFechaPagoProveedor.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas new file mode 100644 index 00000000..141870e5 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas @@ -0,0 +1,27 @@ +unit uIEditorElegirRecibosProveedor; + +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 proveedor/Controller/View/uIEditorFechaPagoProveedor.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.pas new file mode 100644 index 00000000..5d67af74 --- /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.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.pas new file mode 100644 index 00000000..01838ba2 --- /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.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.pas new file mode 100644 index 00000000..c6520a68 --- /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 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 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.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.pas new file mode 100644 index 00000000..136adbeb --- /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.pas b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas new file mode 100644 index 00000000..89a7e3e3 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas @@ -0,0 +1,215 @@ +{ +=============================================================================== + 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 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; + procedure AsignarID(APagosProveedor: IBizPagosProveedor; IDCabecera: Integer; AEsNuevo:Boolean); + end; + + TPagosProveedorController = class(TSujeto, IPagosProveedorController) + protected + FDataModule : IDataModuleRecibosProveedor; + procedure AsignarDataModule; + procedure AsignarDatos(APagosProveedor: IBizPagosProveedor; IDCabecera: Integer); + + public + constructor Create; virtual; + destructor Destroy; override; + procedure AsignarID(APagosProveedor: IBizPagosProveedor; IDCabecera: Integer; AEsNuevo:Boolean); + 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 devolución devolvemos true en caso de ser +una devolución 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; + +procedure TPagosProveedorController.AsignarDatos(APagosProveedor: IBizPagosProveedor; IDCabecera: Integer); +begin + inherited; + APagosProveedor.Edit; + APagosProveedor.ID := FDataModule.GetNextID(APagosProveedor.DataTable.LogicalName); + APagosProveedor.ID_RECIBO := IDCabecera; + APagosProveedor.Post +end; + +procedure TPagosProveedorController.AsignarID(APagosProveedor: IBizPagosProveedor; IDCabecera: Integer; AEsNuevo:Boolean); +begin + with APagosProveedor do + begin + DataTable.DisableControls; + try + begin + if not DataTable.Active then + DataTable.Active := True; + + { ¡¡¡¡ OJO !!!! + Para asignar el ID en los detalles hay + que tener en cuenta una cosa: + Si se cambia el ID, ese detalle ya no + pertenece a esa cabecera porque ya no se + cumple la condición de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razón no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo según asignamos + el valor al campo ID y nos mueve aleatoriamente + la posición del registro actual. + + Es mejor hacer un bucle sencillo hasta que + "se gasten" todos los detalles. Cuando el + RecordCount llegue a 0 quiere decir que hemos + tratado todos los detalles. + + El bucle cambia en el caso de ser llamada esta funcion desde modificar + un presupuesto ya que en ese caso si que hay que hacer un recorrido + total de las tuplas de detalle. + } + + if AEsNuevo then + begin + while RecordCount > 0 do + begin + DataTable.First; + AsignarDatos(APagosProveedor, IDCabecera); + end + end + else + begin + DataTable.First; + while not DataTable.EOF do + begin + if DataTable.FieldByName('ID').AsInteger < 0 then + AsignarDatos(APagosProveedor, IDCabecera); + DataTable.Next + end; + end; + end; + finally + DataTable.EnableControls; + end; + end; +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 devolución devuelve false} +begin + Result := False; + + 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 + 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.pas b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas new file mode 100644 index 00000000..d9febf9b --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas @@ -0,0 +1,672 @@ +{ +=============================================================================== + 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 uRecibosProveedorController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uPagosProveedorController, uProveedoresController, + uBizRecibosProveedor, uIDataModuleRecibosProveedor; + +type + IRecibosProveedorController = interface(IObservador) + ['{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 BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; + function BuscarTodos: IBizRecibosProveedor; + function BuscarTodosPendientesDevueltos: IBizRecibosProveedor; + procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor); + procedure Ver(ARecibosProveedor: IBizRecibosProveedor); + function Localizar(ARecibosProveedor: IBizRecibosProveedor; ADescripcion:String): Boolean; + function DarListaRecibosProveedor: TStringList; + function ExtraerSeleccionados(ARecibosProveedor: IBizRecibosProveedor) : IBizRecibosProveedor; + procedure SetSituacionCobrados(ARecibos : IBizRecibosProveedor; WithDeltas: Boolean=False); + procedure Preview(ARecibosProveedor : IBizRecibosProveedor); + procedure Print(ARecibosProveedor : IBizRecibosProveedor); + end; + + TRecibosProveedorController = class(TObservador, IRecibosProveedorController) + private + function ImporteTotalModificado(ARecibosProveedor: IBizRecibosProveedor; + var ImporteRestante: Currency): Boolean; + 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; + procedure AsignarID(ARecibosProveedor: IBizRecibosProveedor; const IDNuevo: Integer); + function DarNuevaReferencia(ID_FACTURA : Integer; REFERENCIA: String): String; + + public + property PagosController: IPagosProveedorController read GetPagosController write SetPagosController; + constructor Create; virtual; + 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 BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; + function BuscarTodos: IBizRecibosProveedor; + function BuscarTodosPendientesDevueltos: IBizRecibosProveedor; + procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor); + procedure Ver(ARecibosProveedor: IBizRecibosProveedor); + function Localizar(ARecibosProveedor: IBizRecibosProveedor; ADescripcion:String): Boolean; + function DarListaRecibosProveedor: TStringList; + function ExtraerSeleccionados(ARecibosProveedor: IBizRecibosProveedor) : IBizRecibosProveedor; + procedure SetSituacionCobrados(ARecibos : IBizRecibosProveedor; WithDeltas: Boolean=False); + procedure Preview(ARecibosProveedor : IBizRecibosProveedor); + procedure Print(ARecibosProveedor : IBizRecibosProveedor); + end; + +implementation + +uses + Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + uRecibosProveedorReportController, uBizContactos, + schRecibosProveedorClient_Intf, uIEditorRecibosProveedor, uIEditorReciboProveedor, + uDataModuleRecibosProveedor, uIEditorFechaPagoProveedor; + +{ 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); + AEditor.Release; + finally + AEditor := NIL; + end; + end; + + // Se cancela la operación + if Length(FechaPago) = 0 then + Exit; + + //Finalmente añadimos 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 devolución + else + begin + ARecibosProveedor.Edit; + ARecibosProveedor.SITUACION := CTE_DEVUELTO; + Result := False; + end; +end; + +procedure TRecibosProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosProveedor.Create(Nil); +end; + +procedure TRecibosProveedorController.AsignarID(ARecibosProveedor: IBizRecibosProveedor; + const IDNuevo: Integer); +var + AContador : Integer; +begin + if not Assigned(ARecibosProveedor) then + raise Exception.Create ('IBizRecibosProveedor no asignado'); + + if not Assigned(ARecibosProveedor.Pagos) then + raise Exception.Create ('Pagos del recibo no asignados'); + + if not Assigned(FPagosController) then + raise Exception.Create ('Controller pagos no asignado'); + + { Los detalles hay que comprobarlos siempre + tanto en inserción como en modificación. } + if Assigned(ARecibosProveedor.Pagos) then + FPagosController.AsignarID(ARecibosProveedor.Pagos, IDNuevo, ARecibosProveedor.EsNuevo); + +//Lo haremos siempre para actualizar siempre la referencia del recibo +// if ARecibosProveedor.EsNuevo then +// begin + ARecibosProveedor.Edit; + ARecibosProveedor.ID := IDNuevo; + ARecibosProveedor.DESCRIPCION := 'RECIBO ' + ARecibosProveedor.REFERENCIA + ' - ' + CifraToLetras((ARecibosProveedor.IMPORTE + ARecibosProveedor.OTROS_GASTOS)); + ARecibosProveedor.Post; +// end; +end; + +function TRecibosProveedorController.BuscarTodos: IBizRecibosProveedor; +begin + Result := FDataModule.GetItems; +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); +end; + +function TRecibosProveedorController.BuscarTodosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosProveedorID_FACTURA + ' = ' + IntToStr(ID_FACTURA)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.BuscarTodosPendientesDevueltos: IBizRecibosProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosProveedorSITUACION + ' = ''' + CTE_PENDIENTE + ''''); + AddText(' OR ' + fld_RecibosProveedorSITUACION + ' = ''' + CTE_DEVUELTO + ''''); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController._Vacio: IBizRecibosProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TRecibosProveedorController.DarListaRecibosProveedor: TStringList; +var + ARecibosProveedor: IBizRecibosProveedor; +begin + ARecibosProveedor := BuscarTodos; + ARecibosProveedor.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ARecibosProveedor.DataTable.First; + while not ARecibosProveedor.DataTable.EOF do + begin + Add(ARecibosProveedor.DESCRIPCION); + ARecibosProveedor.DataTable.Next; + end; + end; + finally + ARecibosProveedor := NIL; + end; +end; + +function TRecibosProveedorController.DarNuevaReferencia(ID_FACTURA: Integer; REFERENCIA: String): String; +var + ARecibosProveedor: IBizRecibosProveedor; + NumReferencia : Integer; + Cadena : String; +begin + try + ARecibosProveedor := BuscarTodosFactura(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; +var + ImporteRestante: Double; + +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 emisión 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 "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } + ARecibosProveedor.Edit; + try + ARecibosProveedor.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + ARecibosProveedor.Post; + end; + + Result := True; +end; + +procedure TRecibosProveedorController.Ver(ARecibosProveedor: IBizRecibosProveedor); +var + AEditor : IEditorReciboProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarCliente(ARecibosProveedor); + CreateEditor('EditorReciboProveedor', IEditorReciboProveedor, AEditor); + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Recibo := ARecibosProveedor; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TRecibosProveedorController.VerTodos(ARecibosProveedor: IBizRecibosProveedor); +var + AEditor : IEditorRecibosProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorRecibosProveedor', IEditorRecibosProveedor, AEditor); + with AEditor do + RecibosProveedor := ARecibosProveedor; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowEmbedded; + finally + AEditor := NIL; + end; +end; + +function TRecibosProveedorController.Eliminar(ARecibosProveedor: IBizRecibosProveedor): Boolean; +begin + Result := False; + + 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 + 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 + NuevoID : Integer; + ANuevoReciboProveedor : IBizRecibosProveedor; + ImporteRestante : Currency; +begin + Result := False; + + ANuevoReciboProveedor := NIL; + ImporteRestante := 0; + + if ValidarReciboProveedor(ARecibosProveedor) then + begin + ShowHourglassCursor; + try + if ARecibosProveedor.EsNuevo then + NuevoID := FDataModule.GetNextID(ARecibosProveedor.DataTable.LogicalName) + else + NuevoID := ARecibosProveedor.ID; + + //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.ID := FDataModule.GetNextID(ARecibosProveedor.DataTable.LogicalName); + ANuevoReciboProveedor.IMPORTE := ImporteRestante; + ANuevoReciboProveedor.DESCRIPCION := 'RECIBO ' + ANuevoReciboProveedor.REFERENCIA + ' - ' + CifraToLetras(ImporteRestante); + ANuevoReciboProveedor.Post; + end; + + //Primero debemos hacer el ApplyUpdates del recibo inicial por si fallase + //Así no se haría el nuevo + AsignarID(ARecibosProveedor, NuevoID); + ARecibosProveedor.DataTable.ApplyUpdates; + + if Assigned(ANuevoReciboProveedor) then + ANuevoReciboProveedor.DataTable.ApplyUpdates; + + Result := True; + finally + ANuevoReciboProveedor := NIL; + HideHourglassCursor; + end; + end; +end; + +function TRecibosProveedorController.Localizar(ARecibosProveedor: IBizRecibosProveedor; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ARecibosProveedor.DataTable do + begin + DisableControls; + First; + if not Locate(fld_RecibosProveedorDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRecibosProveedorController.ModificarPago(ARecibosProveedor: IBizRecibosProveedor); +var + AEditor : IEditorFechaPagoProveedor; + FechaPago: String; +begin + //Pedimos la fecha del pago + CreateEditor('EditorFechaPagoProveedor', IEditorFechaPagoProveedor, AEditor); + if Assigned(AEditor) then + try + FechaPago:= ''; + if (AEditor.ShowModal = mrOk) then + FechaPago := DateToStr(AEditor.FechaPago); + AEditor.Release; + finally + AEditor := NIL; + end; + + if Length(FechaPago) > 0 then + PagosController.Modificar(ARecibosProveedor.Pagos, FechaPago); +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); + CopyDataTable(ARecibosProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +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; + +end. 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 00000000..3f3a0122 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.pas @@ -0,0 +1,103 @@ +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); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +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); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..b0d0ac6f --- /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.dpk b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk new file mode 100644 index 00000000..438fb0e6 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk @@ -0,0 +1,50 @@ +package RecibosProveedor_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, + dbrtl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base, + Usuarios, + RecibosProveedor_model; + +contains + uDataModuleRecibosProveedor in 'uDataModuleRecibosProveedor.pas' {DataModuleRecibosProveedor: TDAClientDataModule}; + +end. 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 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm new file mode 100644 index 00000000..39957f85 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm @@ -0,0 +1,778 @@ +object DataModuleRecibosProveedor: TDataModuleRecibosProveedor + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvRecibosProveedor' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_PagosProveedor: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ID_RECIBO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_ID_RECIBO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TIPO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_PAGO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_FECHA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TITULAR' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ENTIDAD' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_SUCURSAL' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_DC' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_CUENTA' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_ALTA' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_USUARIO' + Alignment = taLeftJustify + DictionaryEntry = 'PagosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'ID=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'PagosProveedor' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'PagosProveedor' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'PagosProveedor' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_RecibosProveedor + MasterFields = 'ID' + DetailFields = 'ID_RECIBO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PagosProveedor' + IndexDefs = <> + Left = 416 + Top = 200 + end + object ds_PagosProveedor: TDADataSource + DataTable = tbl_PagosProveedor + Left = 416 + Top = 136 + end + object tbl_RecibosProveedor: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FECHA_EMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_ID_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_NOMBRE_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_NOMBRE_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_ENTIDAD_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_ENTIDAD_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_SUCURSAL_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_SUCURSAL_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_DC_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_DC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosProveedor_CUENTA_PROVEEDOR' + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_CUENTA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RecibosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'RecibosProveedor' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'RecibosProveedor' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'RecibosProveedor' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecibosProveedor' + IndexDefs = <> + Left = 232 + Top = 200 + end + object ds_RecibosProveedor: TDADataSource + DataTable = tbl_RecibosProveedor + Left = 232 + Top = 136 + 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 00000000..d9169ca9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.pas @@ -0,0 +1,173 @@ +{ +=============================================================================== + 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 uDataModuleRecibosProveedor; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleRecibosProveedor, uIDataModuleRecibosProveedorReport, + uBizRecibosProveedor, uBizPagosProveedor; + +type + TDataModuleRecibosProveedor = class(TDAClientDataModule, IDataModuleRecibosProveedor, IDataModuleRecibosProveedorReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_PagosProveedor: TDACDSDataTable; + ds_PagosProveedor: TDADataSource; + tbl_RecibosProveedor: TDACDSDataTable; + ds_RecibosProveedor: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + function _GetPagos: IBizPagosProveedor; + public + function GetNextID(const DataSetName : String) : Integer; + function GetItems: IBizRecibosProveedor; + function GetItem(const ID : Integer) : IBizRecibosProveedor; + function NewItem : IBizRecibosProveedor; + function GetReport(const ID: Integer): Binary; + + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + 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.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_RecibosProveedor then + Result := 'GEN_RECIBOS_PROVEEDOR_ID'; + if DataSetName = nme_PagosProveedor then + Result := 'GEN_PAGOS_PROVEEDOR_ID' +end; + +function TDataModuleRecibosProveedor.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvRecibosProveedor).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleRecibosProveedor._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleRecibosProveedor._GetPagos: IBizPagosProveedor; +var + APagos : TDACDSDataTable; +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.GetItems: IBizRecibosProveedor; +var + AIBizRecibosProveedor : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AIBizRecibosProveedor := _CloneDataTable(tbl_RecibosProveedor); + AIBizRecibosProveedor.BusinessRulesID := BIZ_CLIENT_IBizRecibosProveedor; + + with TBizRecibosProveedor(AIBizRecibosProveedor.BusinessEventsObj) do + Pagos := _GetPagos; + + Result := (AIBizRecibosProveedor as IBizRecibosProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosProveedor.NewItem: IBizRecibosProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRecibosProveedor.GetItem(const ID: Integer): IBizRecibosProveedor; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RecibosProveedorID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +end. 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 00000000..4b21d7c2 --- /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 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 uIDataModuleRecibosProveedor; + +interface + +uses + uBizRecibosProveedor; + +type + IDataModuleRecibosProveedor = interface + ['{0EEAF672-1509-4695-90B0-0D6EBB81B6C5}'] + function GetItems: IBizRecibosProveedor; + function GetNextID(const DataSetName : String) : Integer; + function GetItem(const ID : Integer) : IBizRecibosProveedor; + function NewItem : IBizRecibosProveedor; + end; + +implementation + +end. 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 00000000..877b3a3a --- /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 00000000..540c8437 --- /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.dpk b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk new file mode 100644 index 00000000..fc899f66 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk @@ -0,0 +1,45 @@ +package RecibosProveedor_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + Contactos_model; + +contains + uIDataModuleRecibosProveedor in 'Data\uIDataModuleRecibosProveedor.pas', + uBizRecibosProveedor in 'uBizRecibosProveedor.pas', + uBizPagosProveedor in 'uBizPagosProveedor.pas', + uIDataModuleRecibosProveedorReport in 'Data\uIDataModuleRecibosProveedorReport.pas', + schRecibosProveedorClient_Intf in 'schRecibosProveedorClient_Intf.pas', + schRecibosProveedorServer_Intf in 'schRecibosProveedorServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.drc b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas new file mode 100644 index 00000000..db589269 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas @@ -0,0 +1,1300 @@ +unit schRecibosProveedorClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_RecibosProveedor = '{2AAC024E-AC2F-4513-9259-F199B69B6C27}'; + RID_RecibosProveedor_Refresh = '{10C38C0E-151B-401A-B871-ECE4187F375B}'; + RID_PagosProveedor = '{44A1CD96-B800-4F0E-9B70-201D420A465A}'; + + { Data table names } + nme_RecibosProveedor = 'RecibosProveedor'; + nme_RecibosProveedor_Refresh = 'RecibosProveedor_Refresh'; + nme_PagosProveedor = 'PagosProveedor'; + + { RecibosProveedor fields } + fld_RecibosProveedorID = 'ID'; + fld_RecibosProveedorREFERENCIA = 'REFERENCIA'; + fld_RecibosProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_RecibosProveedorSITUACION = 'SITUACION'; + fld_RecibosProveedorID_FACTURA = 'ID_FACTURA'; + 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_RecibosProveedorFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosProveedorFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosProveedorIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_RecibosProveedorNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + fld_RecibosProveedorNIF_CIF_PROVEEDOR = 'NIF_CIF_PROVEEDOR'; + fld_RecibosProveedorENTIDAD_PROVEEDOR = 'ENTIDAD_PROVEEDOR'; + fld_RecibosProveedorSUCURSAL_PROVEEDOR = 'SUCURSAL_PROVEEDOR'; + fld_RecibosProveedorDC_PROVEEDOR = 'DC_PROVEEDOR'; + fld_RecibosProveedorCUENTA_PROVEEDOR = 'CUENTA_PROVEEDOR'; + fld_RecibosProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosProveedorUSUARIO = 'USUARIO'; + + { RecibosProveedor field indexes } + idx_RecibosProveedorID = 0; + idx_RecibosProveedorREFERENCIA = 1; + idx_RecibosProveedorREFERENCIA_PROVEEDOR = 2; + idx_RecibosProveedorSITUACION = 3; + idx_RecibosProveedorID_FACTURA = 4; + idx_RecibosProveedorFECHA_EMISION = 5; + idx_RecibosProveedorFECHA_VENCIMIENTO = 6; + idx_RecibosProveedorDESCRIPCION = 7; + idx_RecibosProveedorOBSERVACIONES = 8; + idx_RecibosProveedorIMPORTE = 9; + idx_RecibosProveedorOTROS_GASTOS = 10; + idx_RecibosProveedorIMPORTE_TOTAL = 11; + idx_RecibosProveedorFECHA_FACTURA = 12; + idx_RecibosProveedorFORMA_PAGO_FACTURA = 13; + idx_RecibosProveedorIMPORTE_FACTURA = 14; + idx_RecibosProveedorID_PROVEEDOR = 15; + idx_RecibosProveedorNOMBRE_PROVEEDOR = 16; + idx_RecibosProveedorNIF_CIF_PROVEEDOR = 17; + idx_RecibosProveedorENTIDAD_PROVEEDOR = 18; + idx_RecibosProveedorSUCURSAL_PROVEEDOR = 19; + idx_RecibosProveedorDC_PROVEEDOR = 20; + idx_RecibosProveedorCUENTA_PROVEEDOR = 21; + idx_RecibosProveedorID_EMPRESA = 22; + idx_RecibosProveedorFECHA_ALTA = 23; + idx_RecibosProveedorFECHA_MODIFICACION = 24; + idx_RecibosProveedorUSUARIO = 25; + + { RecibosProveedor_Refresh fields } + fld_RecibosProveedor_RefreshID = 'ID'; + fld_RecibosProveedor_RefreshREFERENCIA = 'REFERENCIA'; + fld_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_RecibosProveedor_RefreshSITUACION = 'SITUACION'; + fld_RecibosProveedor_RefreshID_FACTURA = 'ID_FACTURA'; + fld_RecibosProveedor_RefreshFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosProveedor_RefreshFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosProveedor_RefreshDESCRIPCION = 'DESCRIPCION'; + fld_RecibosProveedor_RefreshOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosProveedor_RefreshIMPORTE = 'IMPORTE'; + fld_RecibosProveedor_RefreshOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosProveedor_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosProveedor_RefreshFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosProveedor_RefreshFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosProveedor_RefreshIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosProveedor_RefreshID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_RecibosProveedor_RefreshNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + fld_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR = 'NIF_CIF_PROVEEDOR'; + fld_RecibosProveedor_RefreshENTIDAD_PROVEEDOR = 'ENTIDAD_PROVEEDOR'; + fld_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR = 'SUCURSAL_PROVEEDOR'; + fld_RecibosProveedor_RefreshDC_PROVEEDOR = 'DC_PROVEEDOR'; + fld_RecibosProveedor_RefreshCUENTA_PROVEEDOR = 'CUENTA_PROVEEDOR'; + fld_RecibosProveedor_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosProveedor_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosProveedor_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosProveedor_RefreshUSUARIO = 'USUARIO'; + + { RecibosProveedor_Refresh field indexes } + idx_RecibosProveedor_RefreshID = 0; + idx_RecibosProveedor_RefreshREFERENCIA = 1; + idx_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR = 2; + idx_RecibosProveedor_RefreshSITUACION = 3; + idx_RecibosProveedor_RefreshID_FACTURA = 4; + idx_RecibosProveedor_RefreshFECHA_EMISION = 5; + idx_RecibosProveedor_RefreshFECHA_VENCIMIENTO = 6; + idx_RecibosProveedor_RefreshDESCRIPCION = 7; + idx_RecibosProveedor_RefreshOBSERVACIONES = 8; + idx_RecibosProveedor_RefreshIMPORTE = 9; + idx_RecibosProveedor_RefreshOTROS_GASTOS = 10; + idx_RecibosProveedor_RefreshIMPORTE_TOTAL = 11; + idx_RecibosProveedor_RefreshFECHA_FACTURA = 12; + idx_RecibosProveedor_RefreshFORMA_PAGO_FACTURA = 13; + idx_RecibosProveedor_RefreshIMPORTE_FACTURA = 14; + idx_RecibosProveedor_RefreshID_PROVEEDOR = 15; + idx_RecibosProveedor_RefreshNOMBRE_PROVEEDOR = 16; + idx_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR = 17; + idx_RecibosProveedor_RefreshENTIDAD_PROVEEDOR = 18; + idx_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR = 19; + idx_RecibosProveedor_RefreshDC_PROVEEDOR = 20; + idx_RecibosProveedor_RefreshCUENTA_PROVEEDOR = 21; + idx_RecibosProveedor_RefreshID_EMPRESA = 22; + idx_RecibosProveedor_RefreshFECHA_ALTA = 23; + idx_RecibosProveedor_RefreshFECHA_MODIFICACION = 24; + idx_RecibosProveedor_RefreshUSUARIO = 25; + + { 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 + { IRecibosProveedor } + IRecibosProveedor = interface(IDAStronglyTypedDataTable) + ['{D680E4E8-463A-4030-B467-473A335896DA}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + function GetNIF_CIF_PROVEEDORValue: String; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); + function GetENTIDAD_PROVEEDORValue: String; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); + function GetSUCURSAL_PROVEEDORValue: String; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); + function GetDC_PROVEEDORValue: String; + procedure SetDC_PROVEEDORValue(const aValue: String); + function GetCUENTA_PROVEEDORValue: String; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR: String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR: String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR: String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property CUENTA_PROVEEDOR: String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TRecibosProveedorDataTableRules } + TRecibosProveedorDataTableRules = class(TDADataTableRules, IRecibosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetENTIDAD_PROVEEDORValue: String; virtual; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); virtual; + function GetSUCURSAL_PROVEEDORValue: String; virtual; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); virtual; + function GetDC_PROVEEDORValue: String; virtual; + procedure SetDC_PROVEEDORValue(const aValue: String); virtual; + function GetCUENTA_PROVEEDORValue: String; virtual; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR: String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR: String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR: String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property CUENTA_PROVEEDOR: String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosProveedor_Refresh } + IRecibosProveedor_Refresh = interface(IDAStronglyTypedDataTable) + ['{0150150A-ED6F-4288-A985-D7032B970E45}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + function GetNIF_CIF_PROVEEDORValue: String; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); + function GetENTIDAD_PROVEEDORValue: String; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); + function GetSUCURSAL_PROVEEDORValue: String; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); + function GetDC_PROVEEDORValue: String; + procedure SetDC_PROVEEDORValue(const aValue: String); + function GetCUENTA_PROVEEDORValue: String; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR: String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR: String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR: String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property CUENTA_PROVEEDOR: String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TRecibosProveedor_RefreshDataTableRules } + TRecibosProveedor_RefreshDataTableRules = class(TDADataTableRules, IRecibosProveedor_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetENTIDAD_PROVEEDORValue: String; virtual; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); virtual; + function GetSUCURSAL_PROVEEDORValue: String; virtual; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); virtual; + function GetDC_PROVEEDORValue: String; virtual; + procedure SetDC_PROVEEDORValue(const aValue: String); virtual; + function GetCUENTA_PROVEEDORValue: String; virtual; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR: String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR: String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR: String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property CUENTA_PROVEEDOR: String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPagosProveedor } + IPagosProveedor = interface(IDAStronglyTypedDataTable) + ['{836B8864-48D5-43BD-A70E-36E829553871}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_RECIBOValue: Integer; + procedure SetID_RECIBOValue(const aValue: Integer); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetFECHA_PAGOValue: DateTime; + procedure SetFECHA_PAGOValue(const aValue: DateTime); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + end; + + { TPagosProveedorDataTableRules } + TPagosProveedorDataTableRules = class(TDADataTableRules, IPagosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ 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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.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.GetENTIDAD_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorENTIDAD_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetENTIDAD_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorENTIDAD_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetSUCURSAL_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorSUCURSAL_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetSUCURSAL_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorSUCURSAL_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetDC_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorDC_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetDC_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorDC_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetCUENTA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorCUENTA_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetCUENTA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorCUENTA_PROVEEDOR].AsString := aValue; +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.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_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.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorUSUARIO].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorUSUARIO].AsString := aValue; +end; + + +{ TRecibosProveedor_RefreshDataTableRules } +constructor TRecibosProveedor_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosProveedor_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshID].AsInteger; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshID].AsInteger := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshREFERENCIA].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshREFERENCIA].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshSITUACION].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshSITUACION].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshID_FACTURA].AsInteger; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshID_FACTURA].AsInteger := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshDESCRIPCION].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshDESCRIPCION].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshOBSERVACIONES].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshOBSERVACIONES].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE].AsCurrency; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE].AsCurrency := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshID_PROVEEDOR].AsInteger; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshID_PROVEEDOR].AsInteger := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshNOMBRE_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshNOMBRE_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetENTIDAD_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshENTIDAD_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetENTIDAD_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshENTIDAD_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetSUCURSAL_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetSUCURSAL_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetDC_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshDC_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetDC_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshDC_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetCUENTA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshCUENTA_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetCUENTA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshCUENTA_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshID_EMPRESA].AsInteger; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosProveedor_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedor_RefreshUSUARIO].AsString; +end; + +procedure TRecibosProveedor_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedor_RefreshUSUARIO].AsString := aValue; +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.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.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.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.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.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.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.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.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.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_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.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorUSUARIO].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorUSUARIO].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RecibosProveedor, TRecibosProveedorDataTableRules); + RegisterDataTableRules(RID_RecibosProveedor_Refresh, TRecibosProveedor_RefreshDataTableRules); + RegisterDataTableRules(RID_PagosProveedor, TPagosProveedorDataTableRules); + +end. 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 00000000..086e6bd3 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.pas @@ -0,0 +1,1537 @@ +unit schRecibosProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_RecibosProveedorDelta = '{BCC0F8EA-2780-4D83-973A-E894BB0EF2AF}'; + RID_RecibosProveedor_RefreshDelta = '{19184AE3-ED2E-48EF-8CA9-422567CE161B}'; + RID_PagosProveedorDelta = '{7D84B7A6-CE5E-427D-BF11-E7A74B003876}'; + +type + { IRecibosProveedorDelta } + IRecibosProveedorDelta = interface(IRecibosProveedor) + ['{BCC0F8EA-2780-4D83-973A-E894BB0EF2AF}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + 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_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + function GetOldNIF_CIF_PROVEEDORValue : String; + function GetOldENTIDAD_PROVEEDORValue : String; + function GetOldSUCURSAL_PROVEEDORValue : String; + function GetOldDC_PROVEEDORValue : String; + function GetOldCUENTA_PROVEEDORValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + 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 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_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldENTIDAD_PROVEEDOR : String read GetOldENTIDAD_PROVEEDORValue; + property OldSUCURSAL_PROVEEDOR : String read GetOldSUCURSAL_PROVEEDORValue; + property OldDC_PROVEEDOR : String read GetOldDC_PROVEEDORValue; + property OldCUENTA_PROVEEDOR : String read GetOldCUENTA_PROVEEDORValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetOldIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + function GetOldNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetENTIDAD_PROVEEDORValue: String; virtual; + function GetOldENTIDAD_PROVEEDORValue: String; virtual; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); virtual; + function GetSUCURSAL_PROVEEDORValue: String; virtual; + function GetOldSUCURSAL_PROVEEDORValue: String; virtual; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); virtual; + function GetDC_PROVEEDORValue: String; virtual; + function GetOldDC_PROVEEDORValue: String; virtual; + procedure SetDC_PROVEEDORValue(const aValue: String); virtual; + function GetCUENTA_PROVEEDORValue: String; virtual; + function GetOldCUENTA_PROVEEDORValue: String; virtual; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR : String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR : String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property OldENTIDAD_PROVEEDOR : String read GetOldENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR : String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property OldSUCURSAL_PROVEEDOR : String read GetOldSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR : String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property OldDC_PROVEEDOR : String read GetOldDC_PROVEEDORValue; + property CUENTA_PROVEEDOR : String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property OldCUENTA_PROVEEDOR : String read GetOldCUENTA_PROVEEDORValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosProveedor_RefreshDelta } + IRecibosProveedor_RefreshDelta = interface(IRecibosProveedor_Refresh) + ['{19184AE3-ED2E-48EF-8CA9-422567CE161B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + 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_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + function GetOldNIF_CIF_PROVEEDORValue : String; + function GetOldENTIDAD_PROVEEDORValue : String; + function GetOldSUCURSAL_PROVEEDORValue : String; + function GetOldDC_PROVEEDORValue : String; + function GetOldCUENTA_PROVEEDORValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + 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 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_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldENTIDAD_PROVEEDOR : String read GetOldENTIDAD_PROVEEDORValue; + property OldSUCURSAL_PROVEEDOR : String read GetOldSUCURSAL_PROVEEDORValue; + property OldDC_PROVEEDOR : String read GetOldDC_PROVEEDORValue; + property OldCUENTA_PROVEEDOR : String read GetOldCUENTA_PROVEEDORValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosProveedor_RefreshBusinessProcessorRules } + TRecibosProveedor_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosProveedor_Refresh, IRecibosProveedor_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetSITUACIONValue: String; virtual; + function GetOldSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetOldIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + function GetOldNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetENTIDAD_PROVEEDORValue: String; virtual; + function GetOldENTIDAD_PROVEEDORValue: String; virtual; + procedure SetENTIDAD_PROVEEDORValue(const aValue: String); virtual; + function GetSUCURSAL_PROVEEDORValue: String; virtual; + function GetOldSUCURSAL_PROVEEDORValue: String; virtual; + procedure SetSUCURSAL_PROVEEDORValue(const aValue: String); virtual; + function GetDC_PROVEEDORValue: String; virtual; + function GetOldDC_PROVEEDORValue: String; virtual; + procedure SetDC_PROVEEDORValue(const aValue: String); virtual; + function GetCUENTA_PROVEEDORValue: String; virtual; + function GetOldCUENTA_PROVEEDORValue: String; virtual; + procedure SetCUENTA_PROVEEDORValue(const aValue: String); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property NIF_CIF_PROVEEDOR : String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property ENTIDAD_PROVEEDOR : String read GetENTIDAD_PROVEEDORValue write SetENTIDAD_PROVEEDORValue; + property OldENTIDAD_PROVEEDOR : String read GetOldENTIDAD_PROVEEDORValue; + property SUCURSAL_PROVEEDOR : String read GetSUCURSAL_PROVEEDORValue write SetSUCURSAL_PROVEEDORValue; + property OldSUCURSAL_PROVEEDOR : String read GetOldSUCURSAL_PROVEEDORValue; + property DC_PROVEEDOR : String read GetDC_PROVEEDORValue write SetDC_PROVEEDORValue; + property OldDC_PROVEEDOR : String read GetOldDC_PROVEEDORValue; + property CUENTA_PROVEEDOR : String read GetCUENTA_PROVEEDORValue write SetCUENTA_PROVEEDORValue; + property OldCUENTA_PROVEEDOR : String read GetOldCUENTA_PROVEEDORValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPagosProveedorDelta } + IPagosProveedorDelta = interface(IPagosProveedor) + ['{7D84B7A6-CE5E-427D-BF11-E7A74B003876}'] + { 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_RECIBOValue: Integer; virtual; + function GetOldID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetTIPOValue: String; virtual; + function GetOldTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + function GetOldFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetTITULARValue: String; virtual; + function GetOldTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_RECIBO : Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property OldTIPO : String read GetOldTIPOValue; + property FECHA_PAGO : DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property OldTITULAR : String read GetOldTITULARValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorSITUACION]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_FACTURA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_EMISION]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDESCRIPCION]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOBSERVACIONES]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOTROS_GASTOS]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_TOTAL]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_FACTURA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := 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; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_FACTURA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORValue: String; +begin + result := 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; + +function TRecibosProveedorBusinessProcessorRules.GetENTIDAD_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorENTIDAD_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldENTIDAD_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorENTIDAD_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetENTIDAD_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorENTIDAD_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetSUCURSAL_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSUCURSAL_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldSUCURSAL_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorSUCURSAL_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetSUCURSAL_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSUCURSAL_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDC_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDC_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDC_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDC_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetCUENTA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorCUENTA_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldCUENTA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorCUENTA_PROVEEDOR]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetCUENTA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorCUENTA_PROVEEDOR] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_EMPRESA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_ALTA]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_MODIFICACION]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION] := aValue; +end; + +function TRecibosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorUSUARIO]; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO] := aValue; +end; + + +{ TRecibosProveedor_RefreshBusinessProcessorRules } +constructor TRecibosProveedor_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosProveedor_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshID]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshREFERENCIA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshREFERENCIA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshREFERENCIA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshSITUACION]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshSITUACION]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshSITUACION] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_FACTURA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshID_FACTURA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_FACTURA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_EMISION]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFECHA_EMISION]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_EMISION] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_VENCIMIENTO]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFECHA_VENCIMIENTO]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_VENCIMIENTO] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshDESCRIPCION]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshDESCRIPCION]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshDESCRIPCION] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshOBSERVACIONES]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshOBSERVACIONES]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshOBSERVACIONES] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshIMPORTE]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshOTROS_GASTOS]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshOTROS_GASTOS]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshOTROS_GASTOS] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE_TOTAL]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshIMPORTE_TOTAL]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_FACTURA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFECHA_FACTURA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_FACTURA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFORMA_PAGO_FACTURA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFORMA_PAGO_FACTURA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFORMA_PAGO_FACTURA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE_FACTURA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshIMPORTE_FACTURA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshIMPORTE_FACTURA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshID_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshNOMBRE_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshNOMBRE_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshNOMBRE_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshNIF_CIF_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetENTIDAD_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshENTIDAD_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldENTIDAD_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshENTIDAD_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetENTIDAD_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshENTIDAD_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetSUCURSAL_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldSUCURSAL_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetSUCURSAL_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshSUCURSAL_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetDC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshDC_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldDC_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshDC_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetDC_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshDC_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetCUENTA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshCUENTA_PROVEEDOR]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldCUENTA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshCUENTA_PROVEEDOR]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetCUENTA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshCUENTA_PROVEEDOR] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_EMPRESA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshID_EMPRESA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshID_EMPRESA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_ALTA]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFECHA_ALTA]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_ALTA] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_MODIFICACION]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshFECHA_MODIFICACION]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshUSUARIO]; +end; + +function TRecibosProveedor_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedor_RefreshUSUARIO]; +end; + +procedure TRecibosProveedor_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedor_RefreshUSUARIO] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID_RECIBO]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetID_RECIBOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTIPO]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_PAGO]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTITULAR]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorENTIDAD]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorSUCURSAL]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorDC]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorCUENTA]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_ALTA]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_MODIFICACION]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION] := aValue; +end; + +function TPagosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorUSUARIO]; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RecibosProveedorDelta, TRecibosProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosProveedor_RefreshDelta, TRecibosProveedor_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PagosProveedorDelta, TPagosProveedorBusinessProcessorRules); + +end. 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 00000000..dd92c515 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.pas @@ -0,0 +1,77 @@ +{ +=============================================================================== + 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 uBizPagosProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf; + +const + BIZ_CLIENT_IBIZPAGOSPROVEEDOR = 'Client.IBizPagosProveedor'; + + CTE_PAGO = 'Pago'; + CTE_DEVOLUCION = 'Devolución'; + +type + IBizPagosProveedor = interface(IPagosProveedor) + ['{5446E4B5-09E7-4FF0-ACFE-E157E9CADB17}'] + end; + + TBizPagosProveedor = class(TPagosProveedorDataTableRules, IBizPagosProveedor) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +uses + SysUtils, uDataTableUtils; + +{ TBizPagosProveedor } + +constructor TBizPagosProveedor.Create(aDataTable: TDADataTable); +begin + inherited Create(aDataTable); + ContIdAux := -1; +end; + +procedure TBizPagosProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZPAGOSPROVEEDOR, TBizPagosProveedor); + +finalization + +end. + 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 00000000..2518230c --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.pas @@ -0,0 +1,167 @@ +{ +=============================================================================== + 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 uBizRecibosProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf, + uBizPagosProveedor, 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; + end; + + TBizRecibosProveedor = class(TRecibosProveedorDataTableRules, IBizRecibosProveedor, ISeleccionable) + protected + FPagos : IBizPagosProveedor; + FPagosLink : 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; + + public + 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.GetPagos: IBizPagosProveedor; +begin + Result := FPagos; +end; + +procedure TBizRecibosProveedor.SetPagos(AValue: IBizPagosProveedor); + begin + FPagos := AValue; + EnlazarMaestroDetalle(FPagosLink, FPagos); + 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; + FPagosLink := TDADataSource.Create(NIL); + FPagosLink.DataTable := aDataTable; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRecibosProveedor.Destroy; +begin + FPagos := NIL; + FreeAndNIL(FPagosLink); + 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; + ID := GetRecNo; // -1, -2, -3... + 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 00000000..45b23667 --- /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.dpk b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk new file mode 100644 index 00000000..67c67737 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk @@ -0,0 +1,42 @@ +package RecibosProveedor_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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + Empresas_controller, + RecibosProveedor_view, + RecibosProveedor_controller; + +contains + uPluginRecibosProveedor in 'uPluginRecibosProveedor.pas' {PluginRecibosProveedor}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dfm new file mode 100644 index 00000000..feb60d0c --- /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 = 106 + 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 00000000..2b57a331 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.pas @@ -0,0 +1,74 @@ +unit uPluginRecibosProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCRecibosProveedor = interface(IInterface) + ['{24A23E95-D148-404C-9987-B1ED4A19D3CA}'] + end; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uRecibosProveedorController, uBizRecibosProveedor, uRecibosProveedorViewRegister; + +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; + uRecibosProveedorViewRegister.RegisterViews; +end; + +destructor TPluginRecibosProveedor.Destroy; +begin + uRecibosProveedorViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginRecibosProveedor); + +finalization + UnRegisterModuleClass(TPluginRecibosProveedor); + +end. diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.dfm b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.dfm new file mode 100644 index 00000000..39427bb8 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.dfm @@ -0,0 +1,755 @@ +object RptRecibosCliente: TRptRecibosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID,'#10' V_RECIBOS_CLIENTE.ID_EMPRES' + + 'A,'#10' V_RECIBOS_CLIENTE.REFERENCIA,'#10' V_RECIBOS_CLIENTE.SITUA' + + 'CION,'#10' V_RECIBOS_CLIENTE.ID_FACTURA,'#10' V_RECIBOS_CLIENTE.ID' + + '_REMESA,'#10' V_RECIBOS_CLIENTE.REFERENCIA_REMESA,'#10' V_RECIBOS_' + + 'CLIENTE.FECHA_EMISION,'#10' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO,'#10 + + ' V_RECIBOS_CLIENTE.DESCRIPCION,'#10' V_RECIBOS_CLIENTE.OBSERVA' + + 'CIONES,'#10' V_RECIBOS_CLIENTE.IMPORTE,'#10' V_RECIBOS_CLIENTE.OTR' + + 'OS_GASTOS,'#10' V_RECIBOS_CLIENTE.IMPORTE_TOTAL,'#10' V_RECIBOS_CL' + + 'IENTE.FECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' ' + + ' V_RECIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.NOMB' + + 'RE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF_CIF_CLIENTE,'#10' V_RECIBOS' + + '_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIBOS_CLIENTE.SUCURSAL_CLIENTE' + + ','#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' V_RECIBOS_CLIENTE.CUENTA' + + '_CLIENTE,'#10#10' EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZ' + + 'ON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBLACI' + + 'ON as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EMP' + + 'RESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPRE' + + 'SAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1' + + ','#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS' + + '.LOGOTIPO'#10#10'FROM'#10' V_RECIBOS_CLIENTE'#10' LEFT OUTER JOIN EMPRESAS O' + + 'N (EMPRESAS.ID = V_RECIBOS_CLIENTE.ID_EMPRESA)'#10'WHERE'#10' V_RECIBOS' + + '_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 = '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 = '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 = '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 + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.Description.Strings = ( + 'Demonstrates how to create simple list report.') + ReportOptions.LastChange = 39169.739683333330000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '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 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end> + Variables = <> + Style = <> + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.pas b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.pas new file mode 100644 index 00000000..97eb3d1a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.pas @@ -0,0 +1,82 @@ +unit uRptRecibosCliente_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; + +type + TRptRecibosCliente = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Cabecera: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarRecibo(const ID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer; + +const + rptInforme = 'InfReciboCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + +{ TRptReciboCliente } + + +procedure TRptRecibosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptRecibosCliente.GenerarRecibo(const ID: Integer): Binary; +var + dsMaster: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..39427bb8 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm @@ -0,0 +1,755 @@ +object RptRecibosCliente: TRptRecibosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID,'#10' V_RECIBOS_CLIENTE.ID_EMPRES' + + 'A,'#10' V_RECIBOS_CLIENTE.REFERENCIA,'#10' V_RECIBOS_CLIENTE.SITUA' + + 'CION,'#10' V_RECIBOS_CLIENTE.ID_FACTURA,'#10' V_RECIBOS_CLIENTE.ID' + + '_REMESA,'#10' V_RECIBOS_CLIENTE.REFERENCIA_REMESA,'#10' V_RECIBOS_' + + 'CLIENTE.FECHA_EMISION,'#10' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO,'#10 + + ' V_RECIBOS_CLIENTE.DESCRIPCION,'#10' V_RECIBOS_CLIENTE.OBSERVA' + + 'CIONES,'#10' V_RECIBOS_CLIENTE.IMPORTE,'#10' V_RECIBOS_CLIENTE.OTR' + + 'OS_GASTOS,'#10' V_RECIBOS_CLIENTE.IMPORTE_TOTAL,'#10' V_RECIBOS_CL' + + 'IENTE.FECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' ' + + ' V_RECIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.NOMB' + + 'RE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF_CIF_CLIENTE,'#10' V_RECIBOS' + + '_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIBOS_CLIENTE.SUCURSAL_CLIENTE' + + ','#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' V_RECIBOS_CLIENTE.CUENTA' + + '_CLIENTE,'#10#10' EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZ' + + 'ON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBLACI' + + 'ON as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EMP' + + 'RESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPRE' + + 'SAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1' + + ','#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS' + + '.LOGOTIPO'#10#10'FROM'#10' V_RECIBOS_CLIENTE'#10' LEFT OUTER JOIN EMPRESAS O' + + 'N (EMPRESAS.ID = V_RECIBOS_CLIENTE.ID_EMPRESA)'#10'WHERE'#10' V_RECIBOS' + + '_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 = '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 = '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 = '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 + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.Description.Strings = ( + 'Demonstrates how to create simple list report.') + ReportOptions.LastChange = 39169.739683333330000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '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 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end> + Variables = <> + Style = <> + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + 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 00000000..decfe3af --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas @@ -0,0 +1,82 @@ +unit uRptRecibosProveedor_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; + +type + TRptRecibosCliente = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Cabecera: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarRecibo(const ID : Integer): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer; + +const + rptInforme = 'InfReciboCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + +{ TRptReciboCliente } + + +procedure TRptRecibosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptRecibosCliente.GenerarRecibo(const ID: Integer): Binary; +var + dsMaster: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..b906d3db --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dfm @@ -0,0 +1,1907 @@ +object srvRecibosProveedor: TsrvRecibosProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schRecibosProveedor + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 247 + Width = 347 + object schRecibosProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'SELECT ID,'#10' REFERENCIA,'#10' REFERENCIA_PROVEEDOR,'#10' ' + + ' SITUACION,'#10' ID_FACTURA,'#10' FECHA_EMISION,'#10' FEC' + + 'HA_VENCIMIENTO,'#10' DESCRIPCION,'#10' OBSERVACIONES,'#10' ' + + ' IMPORTE,'#10' OTROS_GASTOS,'#10' IMPORTE_TOTAL,'#10' FECH' + + 'A_FACTURA,'#10' FORMA_PAGO_FACTURA,'#10' IMPORTE_FACTURA,'#10' ' + + ' ID_PROVEEDOR,'#10' NOMBRE_PROVEEDOR,'#10' NIF_CIF_PROVE' + + 'EDOR,'#10' ENTIDAD_PROVEEDOR,'#10' SUCURSAL_PROVEEDOR,'#10' ' + + ' DC_PROVEEDOR,'#10' CUENTA_PROVEEDOR,'#10' ID_EMPRESA,'#10' ' + + ' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO'#10#10'FROM V' + + '_RECIBOS_PROVEEDOR' + 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 = '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_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 = '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 = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'RecibosProveedor' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_EMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_NOMBRE_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ENTIDAD_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_SUCURSAL_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_DC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_CUENTA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'SELECT ID,'#10' REFERENCIA,'#10' REFERENCIA_PROVEEDOR,'#10' ' + + ' SITUACION,'#10' ID_FACTURA,'#10' FECHA_EMISION,'#10' FEC' + + 'HA_VENCIMIENTO,'#10' DESCRIPCION,'#10' OBSERVACIONES,'#10' ' + + ' IMPORTE,'#10' OTROS_GASTOS,'#10' IMPORTE_TOTAL,'#10' FECH' + + 'A_FACTURA,'#10' FORMA_PAGO_FACTURA,'#10' IMPORTE_FACTURA,'#10' ' + + ' ID_PROVEEDOR,'#10' NOMBRE_PROVEEDOR,'#10' NIF_CIF_PROVE' + + 'EDOR,'#10' ENTIDAD_PROVEEDOR,'#10' SUCURSAL_PROVEEDOR,'#10' ' + + ' DC_PROVEEDOR,'#10' CUENTA_PROVEEDOR,'#10' ID_EMPRESA,'#10' ' + + ' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO'#10#10'FROM V' + + '_RECIBOS_PROVEEDOR'#10'WHERE'#10' ID = :ID' + 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 = '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_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 = '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 = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + 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_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'RecibosProveedor_Refresh' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_SITUACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_FECHA_EMISION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_VENCIMIENTO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_OTROS_GASTOS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE_TOTAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FORMA_PAGO_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_IMPORTE_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_ID_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_NOMBRE_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_NIF_CIF_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_ENTIDAD_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_SUCURSAL_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_DC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_Refresh_CUENTA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RecibosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_PROVEEDOR' + SQL = + 'SELECT '#10' ID, ID_RECIBO, TIPO, FECHA_PAGO, TITULAR, ENTIDAD, '#10 + + ' SUCURSAL, DC, CUENTA, FECHA_ALTA, FECHA_MODIFICACION, '#10' U' + + 'SUARIO'#10' '#10'FROM PAGOS_PROVEEDOR'#10'WHERE ID_RECIBO = :ID'#10'ORDER BY ' + + 'ID /*Muy importante no quitar*/' + StatementType = stSQL + 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 = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_ID_RECIBO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_TIPO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_FECHA_PAGO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_TITULAR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'PagosProveedor_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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' 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 = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + 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> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert RecibosProveedor' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RecibosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert PagosProveedor' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'PagosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update RecibosProveedor' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RecibosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update PagosProveedor' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'PagosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete PagosProveedor' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'PagosProveedor' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete RecibosProveedor' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RecibosProveedor' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object bpRecibosProveedor: TDABusinessProcessor + Schema = schRecibosProveedor + InsertCommandName = 'Insert_RecibosProveedor' + DeleteCommandName = 'Delete_RecibosProveedor' + UpdateCommandName = 'Update_RecibosProveedor' + RefreshDatasetName = 'RecibosProveedor_Refresh' + ReferencedDataset = 'RecibosProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 24 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'RecibosProveedor_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_DC_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_ID_RECIBO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ID_RECIBO' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_TIPO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TIPO' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_FECHA_PAGO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_PAGO' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_TITULAR' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_ENTIDAD' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_SUCURSAL' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_DC' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_CUENTA' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'PagosProveedor_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'PagosCliente_USUARIO' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'SITUACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_VENCIMIENTO' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DESCRIPCION' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'OBSERVACIONES' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_IMPORTE' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_OTROS_GASTOS' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_TOTAL' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FORMA_PAGO_FACTURA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_IMPORTE_FACTURA' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'IMPORTE_FACTURA' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_EMPRESA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'RecibosCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_FECHA_EMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_EMISION' + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_ID_PROVEEDOR' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_DC_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_Refresh_CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RecibosProveedor_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'USUARIO' + Alignment = taLeftJustify + end> + Left = 48 + Top = 152 + end + object bpPagosProveedor: TDABusinessProcessor + Schema = schRecibosProveedor + InsertCommandName = 'Insert_PagosProveedor' + DeleteCommandName = 'Delete_PagosProveedor' + UpdateCommandName = 'Update_PagosProveedor' + ReferencedDataset = 'PagosProveedor' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + 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 00000000..da85e1df --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.pas @@ -0,0 +1,106 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + + uDACDSDataTable, uDAInterfaces, DB, + frxClass, frxDBSet, frxDCtrl, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode; + +type + { TsrvRecibosProveedor } + TsrvRecibosProveedor = class(TDARemoteService, IsrvRecibosProveedor) + DABINAdapter: TDABINAdapter; + bpRecibosProveedor: TDABusinessProcessor; + bpPagosProveedor: TDABusinessProcessor; + schRecibosProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvRecibosProveedor methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvRecibosProveedor.GenerateReport(const ID: Integer): Binary; +//var +// AReportGenerator : TRptRecibosProveedor; +begin +// AReportGenerator := TRptRecibosProveedor.Create(nil); +// try +// Result := AReportGenerator.GenerarRecibo(ID); +// finally +// FreeAndNIL(AReportGenerator); +// end; + Result := NIL; +end; + +function TsrvRecibosProveedor.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..80688d14 --- /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.dpk b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk new file mode 100644 index 00000000..757912f8 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk @@ -0,0 +1,99 @@ +package RecibosProveedor_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + Base, + GUIBase, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + JvPageCompsD10R, + dxLayoutControlD10, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + frx10, + fs10, + fqb100, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + RecibosProveedor_controller, + RecibosProveedor_data, + RecibosProveedor_model; + +contains + uRecibosProveedorViewRegister in 'uRecibosProveedorViewRegister.pas', + uEditorRecibosProveedor in 'uEditorRecibosProveedor.pas' {fEditorRecibosProveedor: TfEditorRecibosCliente}, + uViewRecibosProveedor in 'uViewRecibosProveedor.pas' {frViewRecibosProveedor: TFrame}, + uViewReciboProveedor in 'uViewReciboProveedor.pas' {frViewReciboProveedor: TFrame}, + uEditorReciboProveedor in 'uEditorReciboProveedor.pas' {fEditorReciboProveedor: TfEditorReciboCliente}, + uViewPagosProveedor in 'uViewPagosProveedor.pas' {frViewPagosProveedor: TFrame}, + uEditorFechaPagoProveedor in 'uEditorFechaPagoProveedor.pas' {fEditorFechaPagoProveedor}, + uEditorReciboProveedorReport in 'uEditorReciboProveedorReport.pas' {fEditorReciboProveedorPreview: TfEditorReciboClienteReport}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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/uEditorFechaPagoProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm new file mode 100644 index 00000000..59e52778 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm @@ -0,0 +1,78 @@ +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 + 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.OnChange = eFechaPagoPropertiesChange + 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 00000000..c331b881 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.pas @@ -0,0 +1,51 @@ +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 eFechaPagoPropertiesChange(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.eFechaPagoPropertiesChange(Sender: TObject); +begin + FechaPago := eFechaPago.Date; +end; + +procedure TfEditorFechaPagoProveedor.FormShow(Sender: TObject); +begin + eFechaPago.Date := Date; +end; + +function TfEditorFechaPagoProveedor.GetFechaPago: TDateTime; +begin + Result := FFechaPago; +end; + +procedure TfEditorFechaPagoProveedor.SetFechaPago(const Value: TDateTime); +begin + FFechaPago := Value; +end; + +end. 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 00000000..0206aaeb --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dfm @@ -0,0 +1,275 @@ +inherited fEditorReciboProveedor: TfEditorReciboProveedor + Caption = 'Recibo de cliente' + ClientHeight = 707 + ClientWidth = 691 + OnClose = CustomEditorClose + ExplicitWidth = 699 + ExplicitHeight = 741 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 691 + Caption = 'Recibo de cliente' + ExplicitWidth = 691 + inherited Image1: TImage + Left = 664 + 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 + end + inherited TBXDock: TTBXDock + Width = 691 + ExplicitWidth = 691 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 419 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 691 + end + end + inherited pgPaginas: TPageControl + Width = 691 + Height = 612 + ExplicitWidth = 691 + ExplicitHeight = 612 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 683 + ExplicitHeight = 584 + inline frViewReciboProveedor1: TfrViewReciboProveedor + Left = 0 + Top = 0 + Width = 683 + Height = 337 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 683 + ExplicitHeight = 337 + inherited dxLayoutControl1: TdxLayoutControl + Width = 683 + Height = 337 + ExplicitWidth = 683 + ExplicitHeight = 337 + inherited Bevel1: TBevel + Width = 210 + ExplicitWidth = 210 + end + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 50 + Width = 50 + end + inherited eSituacion: TcxDBTextEdit + ExplicitWidth = 216 + Width = 216 + end + inherited edtFechaVencimiento: TcxDBDateEdit + ExplicitWidth = 216 + Width = 216 + end + inherited memObservaciones: TcxDBMemo + Left = 343 + ExplicitLeft = 343 + ExplicitWidth = 274 + Width = 274 + end + inherited eImporte: TcxDBCurrencyEdit + ExplicitWidth = 194 + Width = 194 + end + inherited eFechaEmision: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 20 + Width = 20 + end + inherited eFormaPago: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 42 + Width = 42 + end + inherited eImporteTotal: TcxDBCurrencyEdit + Left = 419 + Style.IsFontAssigned = True + ExplicitLeft = 419 + ExplicitWidth = 182 + Width = 182 + end + inherited eNombreCliente: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 171 + Width = 171 + end + inherited eNifCif: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 255 + Width = 255 + end + inherited eEntidad: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 90 + Width = 90 + end + inherited eSucursal: TcxDBTextEdit + Left = 541 + ExplicitLeft = 541 + ExplicitWidth = 75 + Width = 75 + end + inherited eDC: TcxDBTextEdit + Left = 628 + ExplicitLeft = 628 + end + inherited eCuenta: TcxDBTextEdit + Left = 419 + ExplicitLeft = 419 + ExplicitWidth = 83 + Width = 83 + end + inherited eRemesa: TcxDBTextEdit + ExplicitWidth = 113 + Width = 113 + end + inherited eOtrosGastos: TcxDBCurrencyEdit + ExplicitWidth = 111 + Width = 111 + end + inherited eImporteTotalRecibo: TcxCurrencyEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaEmision: TcxDBDateEdit + ExplicitWidth = 97 + Width = 97 + end + inherited eReferenciaProveedor: TcxDBTextEdit + ExplicitWidth = 129 + Width = 129 + end + end + end + inline frViewPagosProveedor1: TfrViewPagosProveedor + Left = 0 + Top = 337 + Width = 683 + Height = 247 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 337 + ExplicitWidth = 683 + ExplicitHeight = 247 + inherited dxLayoutControl1: TdxLayoutControl + Width = 683 + Height = 247 + ExplicitWidth = 683 + ExplicitHeight = 247 + 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 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 + end + inherited StatusBar: TJvStatusBar + Top = 688 + Width = 691 + Panels = < + item + Width = 200 + end> + ExplicitTop = 688 + ExplicitWidth = 691 + end + inherited EditorActionList: TActionList + 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 JvFormStorage: TJvFormStorage + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + inherited dsDataTable: TDADataSource + Left = 8 + Top = 136 + end + object DADataSource1: TDADataSource + OnDataChange = dsDataTableDataChange + Left = 80 + Top = 112 + 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 00000000..f4043eb6 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.pas @@ -0,0 +1,284 @@ +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; + +type + TfEditorReciboProveedor = class(TfEditorDBItem, IEditorReciboProveedor) + DADataSource1: TDADataSource; + frViewReciboProveedor1: TfrViewReciboProveedor; + frViewPagosProveedor1: TfrViewPagosProveedor; + 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); + + 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; + + 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; + +{$R *.dfm} + +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; + frViewReciboProveedor1.eImporte.Enabled := False; + frViewReciboProveedor1.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 ningún almacén asignado'); + + Recibo.DataTable.Active := True; +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actAnadirExecute(Sender: TObject); +begin + inherited; + + //En el caso de haber añadido el pago del recibo ya no podremos modificarlo + if FController.AnadirPago(Recibo) then + DeshabilitarRecibo + //Podremos modificar si anulamos el pago mediante una devolución + 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 devolución 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.frViewReciboProveedor1eImportePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + + if (DisplayValue > frViewReciboProveedor1.eImporte.DataBinding.Field.Value) then + begin + DisplayValue := frViewReciboProveedor1.eImporte.DataBinding.Field.Value; + ErrorText := 'El importe debe ser menor o igual que el actual'; + Error := True; + end; +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; + frViewReciboProveedor1.eImporte.Enabled := True; + frViewReciboProveedor1.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; + + 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 +// (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; + + 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.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm new file mode 100644 index 00000000..6d6996b9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm @@ -0,0 +1,23 @@ +inherited fEditorReciboProveedorPreview: TfEditorReciboProveedorPreview + Caption = 'Previsualizar el recibo' + ExplicitWidth = 658 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitWidth = 650 + inherited Image1: TImage + Left = 623 + ExplicitLeft = 623 + end + end + inherited StatusBar: TJvStatusBar + ExplicitTop = 439 + ExplicitWidth = 650 + end + 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 00000000..371ba582 --- /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, + 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, uIEditorRecibosProveedorPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorReciboProveedorPreview = class(TfEditorPreview, IEditorRecibosProveedorPreview) + end; + +implementation +{$R *.dfm} + +end. 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 00000000..da81301e --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dfm @@ -0,0 +1,1457 @@ +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 = 425 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 638 + 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 = 543 + ExplicitWidth = 638 + ExplicitHeight = 543 + 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 + 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 +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 00000000..9340cc27 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.pas @@ -0,0 +1,174 @@ +{ +=============================================================================== + 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; + +type + + TfEditorRecibosProveedor = class(TfEditorGridBase, IEditorRecibosProveedor) + frViewRecibosProveedor1: TfrViewRecibosProveedor; + procedure FormShow(Sender: TObject); + 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; + 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, uDataModuleUsuarios; + +{$R *.dfm} + +{ +*************************** TfEditorRecibosProveedor *************************** +} +constructor TfEditorRecibosProveedor.Create(AOwner: TComponent); +begin + inherited; + FController := TRecibosProveedorController.Create; + 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 + 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.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de recibos de proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRecibosProveedor.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorRecibosProveedor.SetController(const Value: IRecibosProveedorController); +begin + FController := Value; +end; + +procedure TfEditorRecibosProveedor.SetRecibosProveedor(const Value: IBizRecibosProveedor); +begin + FRecibosProveedor := Value; + dsDataTable.DataTable := FRecibosProveedor.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRecibosProveedor).Recibos := FRecibosProveedor; +end; + +end. 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 00000000..a5cdaed4 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.pas @@ -0,0 +1,53 @@ +{ +=============================================================================== + 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 uRecibosProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorRecibosProveedor, uEditorReciboProveedor, + uEditorReciboProveedorReport, uEditorFechaPagoProveedor; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFechaPagoProveedor, 'EditorFechaPagoProveedor'); + EditorRegistry.RegisterClass(TfEditorRecibosProveedor, 'EditorRecibosProveedor'); + EditorRegistry.RegisterClass(TfEditorReciboProveedor, 'EditorReciboProveedor'); + EditorRegistry.RegisterClass(TfEditorReciboProveedorPreview, 'EditorRecibosProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFechaPagoProveedor); + EditorRegistry.UnRegisterClass(TfEditorRecibosProveedor); + EditorRegistry.UnRegisterClass(TfEditorReciboProveedor); + EditorRegistry.UnRegisterClass(TfEditorReciboProveedorPreview); +end; + +end. 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 00000000..d650bbb0 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dfm @@ -0,0 +1,316 @@ +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 + ExplicitWidth = 392 + ExplicitHeight = 189 + 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 = 2 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 2 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 2 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 2 + 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 00000000..60fa3c63 --- /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; + +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/uViewReciboProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm new file mode 100644 index 00000000..022fd973 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm @@ -0,0 +1,695 @@ +inherited frViewReciboProveedor: TfrViewReciboProveedor + Width = 690 + Height = 343 + ExplicitWidth = 690 + ExplicitHeight = 343 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 690 + Height = 343 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 690 + 343) + object Bevel1: TBevel + Left = 136 + Top = 270 + Width = 210 + Height = 9 + Shape = bsBottomLine + end + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 216 + end + object memObservaciones: TcxDBMemo + Left = 435 + Top = 272 + 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 + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Height = 49 + Width = 274 + end + object eImporte: TcxDBCurrencyEdit + Left = 136 + Top = 216 + AutoSize = False + DataBinding.DataField = 'IMPORTE' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Properties.OnEditValueChanged = eImportePropertiesEditValueChanged + 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 = 6 + Height = 21 + Width = 194 + end + object eFechaEmision: TcxDBTextEdit + Left = 511 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 20 + end + object eFormaPago: TcxDBTextEdit + Left = 511 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 42 + end + object eImporteTotal: TcxDBCurrencyEdit + Left = 511 + Top = 84 + 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.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Height = 21 + Width = 182 + end + object eNombreCliente: TcxDBTextEdit + Left = 511 + Top = 167 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 171 + end + object eNifCif: TcxDBTextEdit + Left = 511 + Top = 140 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 147 + end + object eEntidad: TcxDBTextEdit + Left = 511 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ENTIDAD_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 90 + end + object eSucursal: TcxDBTextEdit + Left = 586 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'SUCURSAL_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 75 + end + object eDC: TcxDBTextEdit + Left = 635 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'DC_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 33 + end + object eCuenta: TcxDBTextEdit + Left = 511 + Top = 221 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'CUENTA_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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 83 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 113 + end + object eOtrosGastos: TcxDBCurrencyEdit + Left = 136 + Top = 243 + AutoSize = False + DataBinding.DataField = 'OTROS_GASTOS' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Properties.OnEditValueChanged = eImportePropertiesEditValueChanged + 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 = 7 + Height = 21 + Width = 111 + end + object eImporteTotalRecibo: TcxCurrencyEdit + Left = 136 + Top = 290 + Enabled = False + 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 = 8 + Width = 121 + end + object edtFechaEmision: TcxDBDateEdit + Left = 136 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 668 + 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 + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 287 + 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:' + 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 = 'Importe del recibo' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe:' + Control = eImporte + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + Caption = 'Otros gastos:' + Control = eOtrosGastos + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item18: TdxLayoutItem + Caption = ' ' + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Importe total:' + Control = eImporteTotalRecibo + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + 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 dxLayoutControl1Item9: TdxLayoutItem + Caption = 'Total factura:' + Control = eImporteTotal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + 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 + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Entidad:' + Control = eEntidad + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Sucursal:' + Control = eSucursal + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'DC:' + Control = eDC + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'd. cuenta:' + Control = eCuenta + ControlOptions.ShowBorder = False + end + 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 + 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 00000000..c4bae6c5 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.pas @@ -0,0 +1,114 @@ +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; + +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; + dxLayoutControl1Item6: TdxLayoutItem; + eImporte: TcxDBCurrencyEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + eFechaEmision: TcxDBTextEdit; + dxLayoutControl1Item8: TdxLayoutItem; + eFormaPago: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + eImporteTotal: TcxDBCurrencyEdit; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + eNombreCliente: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eNifCif: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eEntidad: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eSucursal: TcxDBTextEdit; + dxLayoutControl1Item14: TdxLayoutItem; + eDC: TcxDBTextEdit; + dxLayoutControl1Item15: TdxLayoutItem; + eCuenta: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eRemesa: TcxDBTextEdit; + dxLayoutControl1Item17: TdxLayoutItem; + eOtrosGastos: TcxDBCurrencyEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + eImporteTotalRecibo: TcxCurrencyEdit; + dxLayoutControl1Item4: TdxLayoutItem; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item18: TdxLayoutItem; + Bevel1: TBevel; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Item19: TdxLayoutItem; + edtFechaEmision: TcxDBDateEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item20: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + procedure eImportePropertiesEditValueChanged(Sender: TObject); + 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 } + +procedure TfrViewReciboProveedor.eImportePropertiesEditValueChanged(Sender: TObject); +begin + inherited; + eImporteTotalRecibo.Value := eImporte.Value + eOtrosGastos.Value; +end; + +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/uViewRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm new file mode 100644 index 00000000..7c233255 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm @@ -0,0 +1,280 @@ +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> + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 71 + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + Width = 47 + 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 = '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' + 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 + 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 TBXDock1: TTBXDock + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 527 + ExplicitWidth = 527 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 328 + ExplicitLeft = 328 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 527 + ExplicitWidth = 527 + inherited tbxBotones: TTBXToolbar + Width = 517 + ExplicitWidth = 517 + end + 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 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 = 56 + Top = 48 + 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 00000000..ff6f96ca --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.pas @@ -0,0 +1,266 @@ +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, dxPScxGridLnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizRecibosProveedor, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + +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) + PngImageList: TPngImageList; + 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; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxStyleDevueltas: TcxStyle; + actProveedor: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + 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); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FRecibos: IBizRecibosProveedor; + function GetRecibos: IBizRecibosProveedor; + procedure SetRecibos(const Value: IBizRecibosProveedor); + procedure AnadirOtrosFiltros; override; + + public + property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos; + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + end; + + +implementation + +uses + uDataModuleRecibosProveedor, DateUtils, uViewGridBase; + +{$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('FECHA_EMISION'); + 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.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.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('FECHA_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/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 00000000..cdde74a0 --- /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.dpk b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk new file mode 100644 index 00000000..6e8e712a --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk @@ -0,0 +1,49 @@ +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 + rtl, + Base, + ControllerBase, + Contactos_model, + Contactos_controller, + PNG_D10, + vcl, + JSDialog100, + vclx, + vclactnband, + xmlrtl, + designide, + AlbaranesCliente_controller, + AlbaranesCliente_model, + FacturasCliente_controller, + FacturasCliente_model; + +contains + uGenerarFacturasCliAlbCliUtils in 'uGenerarFacturasCliAlbCliUtils.pas' {dmGenerarFacturasCli}, + uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dfm new file mode 100644 index 00000000..82351285 --- /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 00000000..d896d90d --- /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 devolución se ha dado de alta con el código ' + AAlbaranNuevo.REFERENCIA); + + finally + AAlbaranNuevo := Nil; + end; +end; + +end. 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 00000000..eb785cf9 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarFacturasCli: TdmGenerarFacturasCli + 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 00000000..8c3b7600 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas @@ -0,0 +1,248 @@ +unit uGenerarFacturasCliAlbCliUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizAlbaranesCliente, pngimage, JSDialog; + +type + TdmGenerarFacturasCli = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaCli(const IDAlbaran : Integer) : Boolean; overload; + function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente) : Boolean; overload; + function GenerarFacturaCli : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uBizFacturasCliente, + uBizDetallesFacturaCliente, + uAlbaranesClienteController, uDetallesFacturaClienteController, + uFacturasClienteController; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schAlbaranesClienteClient_Intf; + +var + dmGenerarFacturasCli: TdmGenerarFacturasCli; + AFacturasClienteController : IFacturasClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesClienteController : IDetallesFacturaClienteController; +// AProveedoresController : IProveedoresController; + +{ Métodos auxiliares } +{procedure CopiarPedidoAAlbaran(AAlbaran: IBizPedidoCliente; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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 ('Albarán no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaClieedorController.Create; + try + 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 := NIL; + end; +end; } + +procedure Inicializar; +begin + dmGenerarFacturasCli := TdmGenerarFacturasCli.Create(nil); + AFacturasClienteController := TFacturasClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; + ADetallesAlbaranesClienteController := TDetallesFacturaClienteController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasCli); + AFacturasClienteController := nil; + AAlbaranesClienteController := nil; + ADetallesAlbaranesClienteController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaCli(const IDAlbaran : Integer) : Boolean; overload; +var + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + + try + + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran); + + if Assigned(AAlbaran) then + Result := GenerarFacturaCli(AAlbaran); + + if Assigned(AAlbaranesClienteController) then + Finalizar; + + finally + AAlbaran := NIL; + end; +end; + +function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente) : Boolean; overload; +var + AFacturasNuevas : IBizFacturaCliente; + i: Integer; +begin + Result := False; + + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + if not Assigned(AAlbaran) then + raise Exception.Create('Albarán de proveedor no asignado (GenerarFacturaCli)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasClienteController.Nuevo; + if AFacturasClienteController.Anadir(AFacturasNuevas, AAlbaran) 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 código ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el código ' + AFacturasNuevas.REFERENCIA); + end + else begin + with dmGenerarFacturasCli.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; + dmGenerarFacturasCli.JsListaFacturasGeneradas.Execute; + end; + end; + + if Assigned(AAlbaranesClienteController) then + Finalizar; + + finally + AFacturasNuevas := NIL; + end; +end; + +function GenerarFacturaCli : Boolean; overload; +var + AAlbaranes : IBizAlbaranCliente; +begin + Result := False; + try + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + AAlbaranes := AAlbaranesClienteController.ElegirAlbaranes(AAlbaranesClienteController.BuscarSinFacturar, + 'Elija el albarán 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 + Result := GenerarFacturaCli(AAlbaranes); + + if Assigned(AAlbaranesClienteController) then + Finalizar; + finally + AAlbaranes := Nil; + 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 00000000..246cdd93 --- /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.dpk b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk new file mode 100644 index 00000000..a72ac6c6 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk @@ -0,0 +1,49 @@ +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 + rtl, + Base, + ControllerBase, + Contactos_model, + Contactos_controller, + PNG_D10, + vcl, + JSDialog100, + vclx, + vclactnband, + xmlrtl, + designide, + AlbaranesProveedor_model, + AlbaranesProveedor_controller, + FacturasProveedor_model, + FacturasProveedor_controller; + +contains + uGenerarFacturasProvAlbProvUtils in 'uGenerarFacturasProvAlbProvUtils.pas' {dmGenerarFacturasProv}, + uGenerarAlbaranesProvFacProvUtils in 'uGenerarAlbaranesProvFacProvUtils.pas' {dmGenerarAlbaranesProv}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dfm new file mode 100644 index 00000000..5628735a --- /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 00000000..58eb022d --- /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 devolución se ha dado de alta con el código ' + AAlbaranNuevo.REFERENCIA); + + finally + AAlbaranNuevo := Nil; + end; +end; + +end. 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 00000000..072aed26 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dfm @@ -0,0 +1,311 @@ +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 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 00000000..12531b62 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas @@ -0,0 +1,246 @@ +unit uGenerarFacturasProvAlbProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizAlbaranesProveedor, pngimage, JSDialog; + +type + TdmGenerarFacturasProv = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; + function GenerarFacturaProv(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; + function GenerarFacturaProv : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uBizFacturasProveedor, + uBizDetallesFacturaProveedor, + uAlbaranesProveedorController, uDetallesFacturaProveedorController, + uFacturasProveedorController; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schAlbaranesProveedorClient_Intf; + +var + dmGenerarFacturasProv: TdmGenerarFacturasProv; + AFacturasProveedorController : IFacturasProveedorController; + AAlbaranesProveedorController : IAlbaranesProveedorController; + ADetallesAlbaranesProveedorController : IDetallesFacturaProveedorController; +// AProveedoresController : IProveedoresController; + +{ Métodos auxiliares } +{procedure CopiarPedidoAAlbaran(AAlbaran: IBizPedidoCliente; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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 ('Albarán no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + 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 := NIL; + end; +end; } + +procedure Inicializar; +begin + dmGenerarFacturasProv := TdmGenerarFacturasProv.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 GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; +var + AAlbaran : IBizAlbaranProveedor; +begin + Result := False; + + try + + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaran := AAlbaranesProveedorController.Buscar(IDAlbaran); + + if Assigned(AAlbaran) then + Result := GenerarFacturaProv(AAlbaran); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; + + finally + AAlbaran := NIL; + end; +end; + +function GenerarFacturaProv(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; +var + AFacturasNuevas : IBizFacturaProveedor; + i: Integer; +begin + Result := False; + + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + if not Assigned(AAlbaran) then + raise Exception.Create('Albarán de proveedor no asignado (GenerarFacturaProv)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + try + + AFacturasNuevas := AFacturasProveedorController.Nuevo; + if AFacturasProveedorController.Anadir(AFacturasNuevas, AAlbaran) 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 código ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el código ' + 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; + end; +end; + +function GenerarFacturaProv : Boolean; overload; +var + AAlbaranes : IBizAlbaranProveedor; +begin + Result := False; + try + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaranes := AAlbaranesProveedorController.ElegirAlbaranes(AAlbaranesProveedorController.BuscarSinFacturar, + 'Elija el albarán 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 + Result := GenerarFacturaProv(AAlbaranes); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; + finally + AAlbaranes := 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 00000000..41cf7947 --- /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 00000000..e2387bfa --- /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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..95561c15 --- /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 00000000..84d5fa7f --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas @@ -0,0 +1,251 @@ +unit uGenerarAlbaranesCliUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizPedidosCliente, pngimage, JSDialog; + +type + TdmGenerarAlbaranesCli = class(TDataModule) + JsListaAlbaranesGenerados: TJSDialog; + end; + + function GenerarAlbaranCli(const IDPedido : Integer) : Boolean; overload; + function GenerarAlbaranCli(APedido : IBizPedidoCliente) : Boolean; overload; + function GenerarAlbaranCli : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uBizDetallesPedidoCliente, uBizDetallesAlbaranCliente, + uPedidosClienteController, uAlbaranesClienteController, uClientesController, + uDetallesAlbaranClienteController, uControllerDetallesBase, + uBizAlbaranesCliente, uBizContactos, schPedidosClienteClient_Intf, + schAlbaranesClienteClient_Intf; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli; + APedidosClienteController : IPedidosClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesCliController : IDetallesAlbaranClienteController; + AClientesController : IClientesController; + +{ Métodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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; + 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 ('Albarán no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranClienteController.Create; + try + 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 := 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) : Boolean; overload; +var + APedido : IBizPedidoCliente; +begin + Result := False; + + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.Buscar(IDPedido); + if Assigned(APedido) then + Result := GenerarAlbaranCli(APedido); + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function GenerarAlbaranCli(APedido : IBizPedidoCliente) : Boolean; overload; +var + ARespuesta : Integer; + AAlbaran : IBizAlbaranCliente; + AArticulosPendientes: IBizPedidoClienteArticulosPend; +begin + Result := False; + + 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 artículos sin albarán del pedido (GenerarAlbaranCli)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ShowWarningMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido'); +// ARespuesta := ShowConfirmMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente.' + +// #10#13 + '¿Desea generar de todas formas otro albarán para este pedido?'); +// if (ARespuesta = IDNO) then + Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir. + end; + + AAlbaran := AAlbaranesClienteController.Nuevo; + CopiarPedidoAAlbaran(APedido, AAlbaran); + CopiarArticulosPendAAlbaran(APedido, AAlbaran, AArticulosPendientes); + + //Sustituir por if de guardar + if AAlbaranesClienteController.Guardar(AAlbaran) then + begin +// ShowWarningMessage('Todos los artículos que contiene el pedido no están en el catálogo, y por lo tanto no se puede generar el albarán'); + + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do + begin + Instruction.Text := 'Se ha generado el albarán'; + + Content.Clear; + Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AAlbaran.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarán + AAlbaranesClienteController.Ver(AAlbaran); + end; + 200 : // Continuar; + end; + end; + end; + + Result := True; + finally + AArticulosPendientes := NIL; + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function GenerarAlbaranCli : Boolean; overload; +var + APedido : IBizPedidoCliente; +begin + Result := False; + 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 albarán de cliente.' + , False); + + if Assigned(APedido) then + Result := GenerarAlbaranCli(APedido); + 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 00000000..b11b98a7 --- /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 00000000..17eecb7c --- /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 00000000..e69de29b 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 00000000..36f26e23 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 00000000..bd0f9f25 --- /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 00000000..be55d534 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas @@ -0,0 +1,181 @@ +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 artículos 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 artículos 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; + + 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; + 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 00000000..44a0b4c9 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.bdsproj @@ -0,0 +1,530 @@ + + + + + + + + + + + + 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.dpk b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk new file mode 100644 index 00000000..b6a71642 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk @@ -0,0 +1,50 @@ +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, + ControllerBase, + 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.drc b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm new file mode 100644 index 00000000..fcd1cccd --- /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 00000000..2fd0a45f --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas @@ -0,0 +1,348 @@ +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 + Dialogs, uDialogUtils, 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; + +{ Métodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoProveedor; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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.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 ('Albarán no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + try + 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.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 := 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 + Result := False; + 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 artículos sin albarán del pedido (GenerarAlbaranProv)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ARespuesta := ShowConfirmMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de proveedor.' + + #10#13 + '¿Desea generar de todas formas otro albarán 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 artículos que contiene el pedido no están en el catálogo, y por lo tanto no se puede generar el albarán'); + + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do + begin + Instruction.Text := 'Se ha generado el albarán'; + Content.Clear; + Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AAlbaran.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarán + 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 albarán 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 almacén asociado al pedido? + if APedido.ID_ALMACEN = 0 then + begin + if (ShowConfirmMessage('Recepción de pedido a proveedor', 'Este pedido no tiene un almacén asociado por lo que se generará el albarán de proveedor correspondiente sin hacer ningún 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 albarán + AArticulosPendientes := ADetallesPedidosProveedorController.ArticulosPendientes(APedido.ID); + if not Assigned(AArticulosPendientes) then + raise Exception.Create('Error al recuperar los artículos pendientes de recibir del pedido (GenerarAlbaranProv)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ARespuesta := ShowConfirmMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de proveedor.' + + #10#13 + '¿Desea generar de todas formas otro albarán 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.ID_ALMACEN, 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 albarán + if AAlbaranesProveedorController.Anadir(AAlbaran, APedido.ID, AInventarioRecibido) then + AAlbaranesProveedorController.Ver(AAlbaran); + // actRefrescar.Execute; + finally + AAlbaran := 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 00000000..a3c68fcb --- /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.dpk b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dpk new file mode 100644 index 00000000..57cd9422 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/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/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 00000000..e69de29b 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 00000000..36f26e23 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/uGenerarFacturasProvPedProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.dfm new file mode 100644 index 00000000..182262d7 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/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/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.pas new file mode 100644 index 00000000..e9eee604 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.pas @@ -0,0 +1,228 @@ +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; + +{ Métodos auxiliares } +{procedure CopiarPedidoAPedido(APedido: IBizPedidoCliente; + APedido : IBizFacturaProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Albarán 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 albarán 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 ('Albarán no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAPedido)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := APedido.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + 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 := 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('Albarán de proveedor no asignado (GenerarFacturaProv)'); + + if not APedidos.DataTable.Active then + APedidos.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo; + 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 albarán 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/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 00000000..182262d7 --- /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 00000000..b6db56eb --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.pas @@ -0,0 +1,226 @@ +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; + +{ Métodos auxiliares } +{procedure CopiarPedidoAAlbaran(APedido: IBizPedidoCliente; + AAlbaran : IBizFacturaProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán 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 albarán 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 ('Albarán no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artículos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + 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 := 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('Albarán de proveedor no asignado (GenerarFacturaProv)'); + + if not AAlbaranes.DataTable.Active then + AAlbaranes.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo; + 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 albarán 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 00000000..be6f74c8 --- /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.dpk b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk new file mode 100644 index 00000000..17206b52 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk @@ -0,0 +1,62 @@ +package RemesasCliente_controller; + +{$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 + rtl, + vcl, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + GUISDK_D10, + ccpack10, + designide, + xmlrtl, + vclactnband, + vclx, + cfpack_d10, + JvAppFrmD10R, + vcljpg, + JclVcl, + Jcl, + JvSystemD10R, + JvCoreD10R, + Contactos_model, + Contactos_controller, + RemesasCliente_model, + RemesasCliente_data, + RecibosCliente_controller; + +contains + uIEditorRemesasCliente in 'View\uIEditorRemesasCliente.pas', + uIEditorRemesaCliente in 'View\uIEditorRemesaCliente.pas', + uRemesasClienteController in 'uRemesasClienteController.pas', + uRemesasClienteReportController in 'uRemesasClienteReportController.pas', + uIEditorRemesasClientePreview in 'View\uIEditorRemesasClientePreview.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.pas new file mode 100644 index 00000000..e93a2053 --- /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.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.pas new file mode 100644 index 00000000..b686a348 --- /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.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.pas new file mode 100644 index 00000000..d586d015 --- /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.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas new file mode 100644 index 00000000..446c51f8 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas @@ -0,0 +1,473 @@ +unit uRemesasClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleRemesasCliente, uBizRemesasCliente, uProveedoresController, + uBizContactos, uRecibosClienteController; + +type + IRemesasClienteController = interface(IObservador) + ['{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): Boolean; overload; + function Guardar(ARemesaCliente : IBizRemesaCliente): Boolean; + procedure DescartarCambios(ARemesaCliente : IBizRemesaCliente); + function Existe(const ID: Integer) : Boolean; + procedure Preview(ARemesaCliente : IBizRemesaCliente); + procedure Print(ARemesaCliente : IBizRemesaCliente); + + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean; + procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); + function GetRecibosClienteController: IRecibosClienteController; + property RecibosClienteController: IRecibosClienteController read GetRecibosClienteController; + + procedure RecuperarRecibos(ARemesaCliente: IBizRemesaCliente); + function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente) : IBizRemesaCliente; + end; + + TRemesasClienteController = class(TObservador, 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; virtual; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(ARemesaCliente : IBizRemesaCliente): 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); virtual; + procedure Print(ARemesaCliente : IBizRemesaCliente); virtual; + + function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente) : IBizRemesaCliente; virtual; + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean; + procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schRemesasClienteClient_Intf, + 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; + +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 + AsignarDataModule; +end; + +function TRemesasClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +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 "automáticos" + ARemesaCliente.Edit; + try + ARemesaCliente.USUARIO := dmUsuarios.LoginInfo.Usuario; + + Result := True; + finally + ARemesaCliente.Post; + end; +end; + +procedure TRemesasClienteController.Ver(ARemesaCliente: IBizRemesaCliente); +var + AEditor : IEditorRemesaCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(ARemesaCliente); + + CreateEditor('EditorRemesaCliente', IEditorRemesaCliente, AEditor); + with (AEditor as IEditorRemesaCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + RemesaCliente := ARemesaCliente; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TRemesasClienteController.VerTodos(ARemesasCliente: IBizRemesaCliente); +var + AEditor : IEditorRemesasCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorRemesasCliente', IEditorRemesasCliente, AEditor); + with (AEditor as IEditorRemesasCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + RemesasCliente := ARemesasCliente; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.ShowEmbedded; +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): Boolean; +var + ARecibosRemesa : IBizRecibosCliente; + ARecibosSeleccionados : IBizRecibosCliente; +begin + Result := False; + + ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarTodosPendientesDevueltos, 'Elija uno o más 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, False, False, True); + FRecibosClienteController.SetSituacionCobrados(ARecibosRemesa); + Result := True; + finally + HideHourglassCursor; + end; + end; + + ARecibosRemesa := Nil; + ARecibosSeleccionados := Nil; +end; + +function TRemesasClienteController.Eliminar(ARemesaCliente: IBizRemesaCliente): Boolean; +begin + Result := False; + + if not Assigned(ARemesaCliente) then + raise Exception.Create ('RemesaCliente no asignada'); + + ShowHourglassCursor; + try + if (ARemesaCliente.State in dsEditModes) then + ARemesaCliente.Cancel; + + //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 están declarados como maestro-detalles debemos hacer el applyupdates nosotros + ARemesaCliente.Recibos.DataTable.ApplyUpdates; + + //Si todo ha ido bien podremos eliminar la remesa + ARemesaCliente.Delete; + ARemesaCliente.DataTable.ApplyUpdates; + + HideHourglassCursor; + Result := True; + 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', 'Atención', 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.BuscarTodosRemesa(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); + CopyDataTable(ARemesasCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRemesasClienteController.FiltrarEmpresa(ARemesaCliente: IBizRemesaCliente); +begin + if ARemesaCliente.DataTable.Active then + ARemesaCliente.DataTable.Active := False; + + // Filtrar los contactos actuales por empresa + with ARemesaCliente.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + // Para evitar ambigüedades en la SQL del servidor + AddText(fld_RemesasClienteID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual)); +// AddCondition('##' + fld_RemesasClienteID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual); + end; +end; + +function TRemesasClienteController.GetRecibosClienteController: IRecibosClienteController; +begin + Result := FRecibosClienteController; +end; + +function TRemesasClienteController.Guardar(ARemesaCliente: IBizRemesaCliente): Boolean; +var + NuevoID: Integer; + bEsNuevo: Boolean; +begin + Result := False; + + if ValidarRemesaCliente(ARemesaCliente) then + begin + ShowHourglassCursor; + try + bEsNuevo := ARemesaCliente.EsNuevo; + if (bEsNuevo) then + NuevoID := FDataModule.GetNextID(ARemesaCliente.DataTable.LogicalName) + else + NuevoID := ARemesaCliente.ID; + + AsignarID(ARemesaCliente, NuevoID); + //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 están declarados como maestro-detalles debemos hacer el applyupdates nosotros + RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, NuevoID); + ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarán 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 + 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); +var + AReportController : IRemesasClienteReportController; +begin + AReportController := TRemesasClienteReportController.Create; + try + AReportController.Preview(ARemesaCliente.ID); + finally + AReportController := NIL; + end; +end; + +procedure TRemesasClienteController.Print(ARemesaCliente: IBizRemesaCliente); +var + AReportController : IRemesasClienteReportController; +begin + AReportController := TRemesasClienteReportController.Create; + try + AReportController.Print(ARemesaCliente.ID); + finally + AReportController := NIL; + end; +end; + +end. 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 00000000..b58332eb --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas @@ -0,0 +1,103 @@ +unit uRemesasClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRemesasClienteReport, + uBizRemesasCliente; + +type + IRemesasClienteReportController = interface + ['{EA6EAD10-E07B-45A9-9B5E-0D560E2B92DF}'] + procedure Preview(const ID : integer); + procedure Print(const ID : integer); + 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 : integer); + procedure Print(const ID : integer); + 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 : integer); +var + AStream: Binary; + AEditor : IEditorRemesasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Preview; +end; + +procedure TRemesasClienteReportController.Print(const ID : integer); +var + AStream: Binary; + AEditor : IEditorRemesasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); + AEditor.LoadFromStream(AStream); + finally + AStream.Free; + end; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + AEditor.Print +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 00000000..9491fccb --- /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.dpk b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk new file mode 100644 index 00000000..b1926bad --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk @@ -0,0 +1,41 @@ +package RemesasCliente_data; + +{$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 + rtl, + dbrtl, + cxLibraryD10, + dxThemeD10, + vcl, + dsnap, + vcldb, + adortl, + RemesasCliente_model; + +contains + uDataModuleRemesasCliente in 'uDataModuleRemesasCliente.pas' {DataModuleRemesasCliente}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm new file mode 100644 index 00000000..5abc7c58 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm @@ -0,0 +1,399 @@ +object DataModuleRemesasCliente: TDataModuleRemesasCliente + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvRemesasCliente' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_RemesasCliente: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RemesasCliente_ID_EMPRESA' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RemesasCliente_FECHA_REMESA' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RemesasCliente_DESCRIPCION' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RemesasCliente_USUARIO' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Banco' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cod. entidad' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cod. sucursal' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cuenta' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo N19' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo N58' + Alignment = taLeftJustify + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'RemesasCliente' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'RemesasCliente' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'RemesasCliente' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RemesasCliente' + IndexDefs = <> + Left = 288 + Top = 152 + end + object ds_RemesasCliente: TDADataSource + DataTable = tbl_RemesasCliente + Left = 288 + Top = 88 + 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 00000000..ff3e9ca2 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas @@ -0,0 +1,131 @@ +unit uDataModuleRemesasCliente; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleRemesasCliente, uIDataModuleRemesasClienteReport, uBizRemesasCliente; + +type + TDataModuleRemesasCliente = class(TDAClientDataModule, IDataModuleRemesasCliente, IDataModuleRemesasClienteReport) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_RemesasCliente: TDACDSDataTable; + ds_RemesasCliente: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + procedure AsignarClaseNegocio(var ARemesaCliente: TDACDSDataTable); virtual; + function darNombreGenerador(DataSetName: String): String; virtual; + public + function GetItems : IBizRemesaCliente; overload; + function GetItem(const ID : Integer) : IBizRemesaCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizRemesaCliente; + + // Report + function GetReport(const ID: Integer): Binary; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schRemesasClienteClient_Intf, Dialogs; + +{ TdmRemesasCliente } + +procedure TDataModuleRemesasCliente.AsignarClaseNegocio(var ARemesaCliente: TDACDSDataTable); +begin + ARemesaCliente.BusinessRulesID := BIZ_CLIENT_REMESACLIENTE; +end; + +procedure TDataModuleRemesasCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleRemesasCliente.DarNombreGenerador(DataSetName: String): String; +begin + if DataSetName = nme_RemesasCliente then + Result := 'GEN_REMESAS_CLIENTE_ID'; +end; + +function TDataModuleRemesasCliente.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvRemesasCliente).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleRemesasCliente.GetReport(const ID: Integer): Binary; +begin + Result := (RORemoteService as IsrvRemesasCliente).GenerateReport(ID); +end; + +function TDataModuleRemesasCliente.NewItem: IBizRemesaCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRemesasCliente._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleRemesasCliente.GetItem(const ID: Integer): IBizRemesaCliente; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_RemesasClienteID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRemesasCliente.GetItems: IBizRemesaCliente; +var + ARemesaCliente : TDACDSDataTable; +begin + ShowHourglassCursor; + try + ARemesaCliente := _CloneDataTable(tbl_RemesasCliente); + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + ARemesaCliente.FieldByName(fld_RemesasClienteREFERENCIA).ServerAutoRefresh := TRUE; + ARemesaCliente.FieldByName(fld_RemesasClienteIMPORTE_TOTAL).ServerAutoRefresh := TRUE; + + AsignarClaseNegocio(ARemesaCliente); + Result := (ARemesaCliente as IBizRemesaCliente); + finally + HideHourglassCursor; + end; +end; + + +end. 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 00000000..e89ade1f --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.pas @@ -0,0 +1,19 @@ +unit uIDataModuleRemesasCliente; + +interface + +uses + uBizRemesasCliente; + +type + IDataModuleRemesasCliente = interface + ['{9047C468-78DE-404E-9047-1125B382FE3B}'] + function GetItems: IBizRemesaCliente; + function GetItem(const ID : Integer) : IBizRemesaCliente; + function GetNextID(const DataSetName : String) : Integer; + function NewItem : IBizRemesaCliente; + end; + +implementation + +end. 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 00000000..6ab712b4 --- /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: Integer): 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 00000000..5be70e53 --- /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.dpk b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk new file mode 100644 index 00000000..41f418f4 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk @@ -0,0 +1,45 @@ +package RemesasCliente_model; + +{$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 + rtl, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Usuarios, + DataAbstract_D10, + RecibosCliente_model; + +contains + uBizRemesasCliente in 'uBizRemesasCliente.pas', + uIDataModuleRemesasCliente in 'Data\uIDataModuleRemesasCliente.pas', + uIDataModuleRemesasClienteReport in 'Data\uIDataModuleRemesasClienteReport.pas', + schRemesasClienteClient_Intf in 'schRemesasClienteClient_Intf.pas', + schRemesasClienteServer_Intf in 'schRemesasClienteServer_Intf.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas new file mode 100644 index 00000000..2bf7b718 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas @@ -0,0 +1,778 @@ +unit schRemesasClienteClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_darReferencia = '{88DA99A8-DE05-4D9D-A20E-37B516E5E77C}'; + RID_RemesasCliente = '{4F1FBA6F-4FB9-4662-8C91-02D04811FB8C}'; + RID_RemesasCliente_Refresh = '{FDBE7165-B71F-4552-B3A3-CABFC5ADB649}'; + + { Data table names } + nme_darReferencia = 'darReferencia'; + nme_RemesasCliente = 'RemesasCliente'; + nme_RemesasCliente_Refresh = 'RemesasCliente_Refresh'; + + { darReferencia fields } + fld_darReferenciaVALOR = 'VALOR'; + + { darReferencia field indexes } + idx_darReferenciaVALOR = 0; + + { RemesasCliente fields } + fld_RemesasClienteID = 'ID'; + fld_RemesasClienteID_EMPRESA = 'ID_EMPRESA'; + fld_RemesasClienteREFERENCIA = 'REFERENCIA'; + fld_RemesasClienteFECHA_REMESA = 'FECHA_REMESA'; + fld_RemesasClienteDESCRIPCION = 'DESCRIPCION'; + fld_RemesasClienteUSUARIO = 'USUARIO'; + fld_RemesasClienteID_DATOS_BANCO = 'ID_DATOS_BANCO'; + fld_RemesasClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_RemesasClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RemesasClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + 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'; + + { RemesasCliente field indexes } + idx_RemesasClienteID = 0; + idx_RemesasClienteID_EMPRESA = 1; + idx_RemesasClienteREFERENCIA = 2; + idx_RemesasClienteFECHA_REMESA = 3; + idx_RemesasClienteDESCRIPCION = 4; + idx_RemesasClienteUSUARIO = 5; + idx_RemesasClienteID_DATOS_BANCO = 6; + idx_RemesasClienteFECHA_ALTA = 7; + idx_RemesasClienteFECHA_MODIFICACION = 8; + idx_RemesasClienteIMPORTE_TOTAL = 9; + idx_RemesasClienteNOMBRE = 10; + idx_RemesasClienteENTIDAD = 11; + idx_RemesasClienteSUCURSAL = 12; + idx_RemesasClienteDC = 13; + idx_RemesasClienteCUENTA = 14; + idx_RemesasClienteSUFIJO_N19 = 15; + idx_RemesasClienteSUFIJO_N58 = 16; + + { RemesasCliente_Refresh fields } + fld_RemesasCliente_RefreshID = 'ID'; + fld_RemesasCliente_RefreshID_EMPRESA = 'ID_EMPRESA'; + fld_RemesasCliente_RefreshREFERENCIA = 'REFERENCIA'; + fld_RemesasCliente_RefreshFECHA_REMESA = 'FECHA_REMESA'; + fld_RemesasCliente_RefreshDESCRIPCION = 'DESCRIPCION'; + fld_RemesasCliente_RefreshUSUARIO = 'USUARIO'; + fld_RemesasCliente_RefreshID_DATOS_BANCO = 'ID_DATOS_BANCO'; + fld_RemesasCliente_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_RemesasCliente_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RemesasCliente_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RemesasCliente_RefreshNOMBRE = 'NOMBRE'; + fld_RemesasCliente_RefreshENTIDAD = 'ENTIDAD'; + fld_RemesasCliente_RefreshSUCURSAL = 'SUCURSAL'; + fld_RemesasCliente_RefreshDC = 'DC'; + fld_RemesasCliente_RefreshCUENTA = 'CUENTA'; + fld_RemesasCliente_RefreshSUFIJO_N19 = 'SUFIJO_N19'; + fld_RemesasCliente_RefreshSUFIJO_N58 = 'SUFIJO_N58'; + + { RemesasCliente_Refresh field indexes } + idx_RemesasCliente_RefreshID = 0; + idx_RemesasCliente_RefreshID_EMPRESA = 1; + idx_RemesasCliente_RefreshREFERENCIA = 2; + idx_RemesasCliente_RefreshFECHA_REMESA = 3; + idx_RemesasCliente_RefreshDESCRIPCION = 4; + idx_RemesasCliente_RefreshUSUARIO = 5; + idx_RemesasCliente_RefreshID_DATOS_BANCO = 6; + idx_RemesasCliente_RefreshFECHA_ALTA = 7; + idx_RemesasCliente_RefreshFECHA_MODIFICACION = 8; + idx_RemesasCliente_RefreshIMPORTE_TOTAL = 9; + idx_RemesasCliente_RefreshNOMBRE = 10; + idx_RemesasCliente_RefreshENTIDAD = 11; + idx_RemesasCliente_RefreshSUCURSAL = 12; + idx_RemesasCliente_RefreshDC = 13; + idx_RemesasCliente_RefreshCUENTA = 14; + idx_RemesasCliente_RefreshSUFIJO_N19 = 15; + idx_RemesasCliente_RefreshSUFIJO_N58 = 16; + +type + { IdarReferencia } + IdarReferencia = interface(IDAStronglyTypedDataTable) + ['{F1C155EA-E472-4A20-97E9-48A4F469EAC5}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + end; + + { TdarReferenciaDataTableRules } + TdarReferenciaDataTableRules = class(TDADataTableRules, IdarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRemesasCliente } + IRemesasCliente = interface(IDAStronglyTypedDataTable) + ['{FCCDBFEE-7CAB-4837-A17A-D19281944A82}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetFECHA_REMESAValue: DateTime; + procedure SetFECHA_REMESAValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_DATOS_BANCOValue: Integer; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + end; + + { TRemesasClienteDataTableRules } + TRemesasClienteDataTableRules = class(TDADataTableRules, IRemesasCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRemesasCliente_Refresh } + IRemesasCliente_Refresh = interface(IDAStronglyTypedDataTable) + ['{179D4A7F-C909-48AA-AE07-AB5F76D2AC66}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetFECHA_REMESAValue: DateTime; + procedure SetFECHA_REMESAValue(const aValue: DateTime); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetID_DATOS_BANCOValue: Integer; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + end; + + { TRemesasCliente_RefreshDataTableRules } + TRemesasCliente_RefreshDataTableRules = class(TDADataTableRules, IRemesasCliente_Refresh) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property DC: String read GetDCValue write SetDCValue; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TdarReferenciaDataTableRules } +constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TdarReferenciaDataTableRules.Destroy; +begin + inherited; +end; + +function TdarReferenciaDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_darReferenciaVALOR].AsString; +end; + +procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; +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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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_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; + + +{ TRemesasCliente_RefreshDataTableRules } +constructor TRemesasCliente_RefreshDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRemesasCliente_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +function TRemesasCliente_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshID].AsInteger; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasCliente_RefreshID].AsInteger := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshID_EMPRESA].AsInteger; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasCliente_RefreshID_EMPRESA].AsInteger := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshREFERENCIA].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshREFERENCIA].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetFECHA_REMESAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshFECHA_REMESA].AsDateTime; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasCliente_RefreshFECHA_REMESA].AsDateTime := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshDESCRIPCION].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshDESCRIPCION].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshUSUARIO].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshUSUARIO].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetID_DATOS_BANCOValue: Integer; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshID_DATOS_BANCO].AsInteger; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasCliente_RefreshID_DATOS_BANCO].AsInteger := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasCliente_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasCliente_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RemesasCliente_RefreshIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshNOMBRE].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshNOMBRE].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshENTIDAD].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshENTIDAD].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshSUCURSAL].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshSUCURSAL].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshDC].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshDC].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshCUENTA].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshCUENTA].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshSUFIJO_N19].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshSUFIJO_N19].AsString := aValue; +end; + +function TRemesasCliente_RefreshDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_RemesasCliente_RefreshSUFIJO_N58].AsString; +end; + +procedure TRemesasCliente_RefreshDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasCliente_RefreshSUFIJO_N58].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); + RegisterDataTableRules(RID_RemesasCliente, TRemesasClienteDataTableRules); + RegisterDataTableRules(RID_RemesasCliente_Refresh, TRemesasCliente_RefreshDataTableRules); + +end. 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 00000000..d1184c33 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas @@ -0,0 +1,899 @@ +unit schRemesasClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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_darReferenciaDelta = '{2E1B93B3-0013-4E76-9282-C1A8DD67CD55}'; + RID_RemesasClienteDelta = '{A9F30F17-7489-41DF-99B0-9610DAFF0CBD}'; + RID_RemesasCliente_RefreshDelta = '{F948F4C1-BE3B-43B0-9E83-608F6CFCA690}'; + +type + { IdarReferenciaDelta } + IdarReferenciaDelta = interface(IdarReferencia) + ['{2E1B93B3-0013-4E76-9282-C1A8DD67CD55}'] + { Property getters and setters } + function GetOldVALORValue : String; + + { Properties } + property OldVALOR : String read GetOldVALORValue; + end; + + { TdarReferenciaBusinessProcessorRules } + TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + function GetOldVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property OldVALOR : String read GetOldVALORValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRemesasClienteDelta } + IRemesasClienteDelta = interface(IRemesasCliente) + ['{A9F30F17-7489-41DF-99B0-9610DAFF0CBD}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_REMESAValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldUSUARIOValue : String; + function GetOldID_DATOS_BANCOValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldNOMBREValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldSUFIJO_N19Value : String; + function GetOldSUFIJO_N58Value : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + 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; + end; + + { TRemesasClienteBusinessProcessorRules } + TRemesasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IRemesasCliente, IRemesasClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + function GetOldFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + function GetOldID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property FECHA_REMESA : DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_DATOS_BANCO : Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRemesasCliente_RefreshDelta } + IRemesasCliente_RefreshDelta = interface(IRemesasCliente_Refresh) + ['{F948F4C1-BE3B-43B0-9E83-608F6CFCA690}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_REMESAValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldUSUARIOValue : String; + function GetOldID_DATOS_BANCOValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldNOMBREValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldSUFIJO_N19Value : String; + function GetOldSUFIJO_N58Value : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + 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; + end; + + { TRemesasCliente_RefreshBusinessProcessorRules } + TRemesasCliente_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IRemesasCliente_Refresh, IRemesasCliente_RefreshDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + function GetOldFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetUSUARIOValue: String; virtual; + function GetOldUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + function GetOldID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetNOMBREValue: String; virtual; + function GetOldNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetENTIDADValue: String; virtual; + function GetOldENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetSUCURSALValue: String; virtual; + function GetOldSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetDCValue: String; virtual; + function GetOldDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetCUENTAValue: String; virtual; + function GetOldCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property FECHA_REMESA : DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property ID_DATOS_BANCO : Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property DC : String read GetDCValue write SetDCValue; + property OldDC : String read GetOldDCValue; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property OldCUENTA : String read GetOldCUENTAValue; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TdarReferenciaBusinessProcessorRules } +constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TdarReferenciaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; +end; + +function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; +end; + +procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; +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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID_EMPRESA]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteREFERENCIA]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_REMESA]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDESCRIPCION]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteUSUARIO]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_DATOS_BANCO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_DATOS_BANCOValue: Integer; +begin + result := 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; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_ALTA]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_MODIFICACION]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteIMPORTE_TOTAL]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteNOMBRE]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteENTIDAD]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUCURSAL]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDC]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteCUENTA]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N19]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19] := aValue; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N58]; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58] := aValue; +end; + + +{ TRemesasCliente_RefreshBusinessProcessorRules } +constructor TRemesasCliente_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRemesasCliente_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshID]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID_EMPRESA]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshID_EMPRESA]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID_EMPRESA] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshREFERENCIA]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshREFERENCIA]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshREFERENCIA] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_REMESA]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshFECHA_REMESA]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_REMESA] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshDESCRIPCION]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshDESCRIPCION]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshDESCRIPCION] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshUSUARIO]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshUSUARIO]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshUSUARIO] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID_DATOS_BANCO]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshID_DATOS_BANCO]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshID_DATOS_BANCO] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_ALTA]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshFECHA_ALTA]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_ALTA] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_MODIFICACION]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshFECHA_MODIFICACION]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshFECHA_MODIFICACION] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshIMPORTE_TOTAL]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshIMPORTE_TOTAL]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshIMPORTE_TOTAL] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshNOMBRE]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshNOMBRE]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshNOMBRE] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshENTIDAD]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshENTIDAD]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshENTIDAD] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUCURSAL]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshSUCURSAL]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUCURSAL] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshDC]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshDC]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshDC] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshCUENTA]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshCUENTA]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshCUENTA] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUFIJO_N19]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshSUFIJO_N19]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUFIJO_N19] := aValue; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUFIJO_N58]; +end; + +function TRemesasCliente_RefreshBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasCliente_RefreshSUFIJO_N58]; +end; + +procedure TRemesasCliente_RefreshBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasCliente_RefreshSUFIJO_N58] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RemesasClienteDelta, TRemesasClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RemesasCliente_RefreshDelta, TRemesasCliente_RefreshBusinessProcessorRules); + +end. 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 00000000..487dcb42 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.pas @@ -0,0 +1,99 @@ +unit uBizRemesasCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schRemesasClienteClient_Intf, uDBSelectionListUtils, + uBizRecibosCliente; + +const + BIZ_CLIENT_REMESACLIENTE = 'Client.RemesaCliente'; + +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; + +{ 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 := dmUsuarios.IDEmpresaActual; + FECHA_REMESA := Date; + USUARIO := dmUsuarios.LoginInfo.Usuario; +end; + +procedure TBizRemesaCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + 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.pas b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas new file mode 100644 index 00000000..4da1c180 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas @@ -0,0 +1,79 @@ +unit uBizRemesasClienteServer; + +interface + +uses + schRemesasClienteServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_REMESAS_CLIENTE = 'Server.RemesasCliente'; + REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; + +type + TBizRemesasClienteServer = class(TRemesasClienteBusinessProcessorRules) + protected + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schRemesasClienteClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizRemesasClienteServer } + +procedure TBizRemesasClienteServer.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case aChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(aChange.NewValueByName[fld_RemesasClienteREFERENCIA])) + or (VarToStr(aChange.NewValueByName[fld_RemesasClienteREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := aChange.NewValueByName[fld_RemesasClienteID_EMPRESA]; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_REMESAS_CLIENTE, Empresa]); + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('NO HAY REFERENCIA ' + REF_REMESAS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); + + REFERENCIA := dsData.FieldByName('VALOR').AsString; + + try + ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_Remesas_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); + except + RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); + end; + + end; + end; + end; +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 00000000..ab0b626b --- /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.dpk b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk new file mode 100644 index 00000000..1b2719df --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk @@ -0,0 +1,42 @@ +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 + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + RemesasCliente_view, + RemesasCliente_controller, + RemesasCliente_model; + +contains + uPluginRemesasCliente in 'uPluginRemesasCliente.pas' {PluginRemesasCliente}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dfm new file mode 100644 index 00000000..265fec31 --- /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 = 106 + 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 00000000..f9e257e6 --- /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/Reports/uRptRemesasCliente_Server.dfm b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm new file mode 100644 index 00000000..2fec101c --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm @@ -0,0 +1,988 @@ +object RptRemesasCliente: TRptRemesasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + SchemaCall.Params = <> + DataRequestCall.Params = <> + DataUpdateCall.Params = <> + ScriptCall.Params = <> + ReadOnly = 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 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'SELECT'#10' REMESAS_CLIENTE.ID,'#10' REMESAS_CLIENTE.ID_EMPRESA,'#10' ' + + ' REMESAS_CLIENTE.REFERENCIA,'#10' REMESAS_CLIENTE.FECHA_REMESA,' + + #10' REMESAS_CLIENTE.IMPORTE_TOTAL,'#10' EMPRESAS.NOMBRE as TITUL' + + 'AR,'#10' EMPRESAS_DATOS_BANCO.ENTIDAD,'#10' EMPRESAS_DATOS_BANCO.S' + + 'UCURSAL,'#10' EMPRESAS_DATOS_BANCO.DC,'#10' EMPRESAS_DATOS_BANCO.C' + + 'UENTA,'#10' REMESAS_CLIENTE.DESCRIPCION,'#10#10' EMPRESAS.NIF_CIF as' + + ' NIF_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as C' + + 'ALLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRE' + + 'SAS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as CO' + + 'DIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPR' + + 'ESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESA' + + 'S.REGISTRO_MERCANTIL, EMPRESAS.LOGOTIPO'#10#10#10'FROM'#10' REMESAS_CLIENTE' + + #10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = REMESAS_CLIENTE.ID' + + '_EMPRESA)'#10' LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DA' + + 'TOS_BANCO.ID = REMESAS_CLIENTE.ID_DATOS_BANCO)'#10'WHERE'#10' REMESAS_C' + + 'LIENTE.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 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + 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.FECHA_FACT' + + 'URA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' V_RECIBOS_CLI' + + 'ENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.ID_EMPRESA,'#10' V_RE' + + 'CIBOS_CLIENTE.NOMBRE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF_CIF_CLIE' + + 'NTE,'#10' V_RECIBOS_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIBOS_CLIENT' + + 'E.SUCURSAL_CLIENTE,'#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' V_RECI' + + 'BOS_CLIENTE.CUENTA_CLIENTE'#10#10#10'FROM V_RECIBOS_CLIENTE'#10'WHERE ID_REM' + + 'ESA = :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> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_REMESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '3.23.7' + 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' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39170.827494212960000000 + 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 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = <> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + 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 00000000..891f02a1 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas @@ -0,0 +1,93 @@ +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; + +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); + private + FConnection: IDAConnection; + public + function GenerarRemesa(const ID : Integer): Binary; + 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; +end; + +function TRptRemesasCliente.GenerarRemesa(const ID: Integer): Binary; +var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + 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); + + frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); + frxReport.PrepareReport; + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. 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 00000000..2d199f90 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm @@ -0,0 +1,1010 @@ +object srvRemesasCliente: TsrvRemesasCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schRemesasCliente + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + 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 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID_DATOS_BANCO' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_ALTA' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA_MODIFICACION' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Banco' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cod. entidad' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cod. sucursal' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'DC' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Cuenta' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo N19' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Sufijo N58' + Alignment = taLeftJustify + end + item + Name = 'RemesasCliente_Refresh_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'REFERENCIA' + Alignment = taLeftJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schRemesasCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = 'REF_REMESAS_CLIENTE' + ParamType = daptInput + end + item + Name = 'EMPRESA' + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + + 'ESA = :EMPRESA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'darReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_REMESAS_CLIENTE' + SQL = + 'SELECT'#10' ID,'#10' ID_EMPRESA,'#10' REFERENCIA,'#10' FECHA_REMESA,'#10' DESCR' + + 'IPCION,'#10' ID_DATOS_BANCO,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' ' + + 'USUARIO,'#10' NOMBRE,'#10' ENTIDAD,'#10' SUCURSAL,'#10' DC,'#10' CUENTA,'#10' SUFI' + + 'JO_N19,'#10' SUFIJO_N58,'#10' IMPORTE_TOTAL'#10'FROM'#10' V_REMESAS_CLIENTE' + 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 = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + 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 = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + 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> + end> + Name = 'RemesasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '22' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_REMESAS_CLIENTE' + SQL = + 'SELECT'#10' ID,'#10' ID_EMPRESA,'#10' REFERENCIA,'#10' FECHA_REMESA,'#10' DESCR' + + 'IPCION,'#10' ID_DATOS_BANCO,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' ' + + 'USUARIO,'#10' NOMBRE,'#10' ENTIDAD,'#10' SUCURSAL,'#10' DC,'#10' CUENTA,'#10' SUFI' + + 'JO_N19,'#10' SUFIJO_N58,'#10' IMPORTE_TOTAL'#10'FROM'#10' V_REMESAS_CLIENTE'#10'W' + + 'HERE ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_REMESA' + TableField = 'FECHA_REMESA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + SQLOrigin = 'REMESAS_CLIENTE.ID_EMPRESA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + 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 = '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> + end> + Name = 'RemesasCliente_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_USUARIO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Importe total' + Alignment = taRightJustify + ServerAutoRefresh = True + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_NOMBRE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_ENTIDAD' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUCURSAL' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DC' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_DC' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_CUENTA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :ID_EMPRESA' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'INSERT'#10' INTO REMESAS_CLIENTE'#10' (ID, REFERENCIA, FECHA_REMESA,' + + ' DESCRIPCION, USUARIO, ID_EMPRESA,'#10' ID_DATOS_BANCO, FECHA_AL' + + 'TA, FECHA_MODIFICACION)'#10' VALUES'#10' (:ID, :REFERENCIA, :FECHA_R' + + 'EMESA, :DESCRIPCION, :USUARIO,'#10' :ID_EMPRESA, :ID_DATOS_BANCO' + + ', :FECHA_ALTA,'#10' :FECHA_MODIFICACION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RemesasCliente' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + 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 = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'UPDATE REMESAS_CLIENTE'#10' SET '#10' REFERENCIA = :REFERENCIA, '#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 = :OL' + + 'D_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RemesasCliente' + end> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 72 + end + object bpRemesasCliente: TDABusinessProcessor + Schema = schRemesasCliente + InsertCommandName = 'Insert_RemesasCliente' + DeleteCommandName = 'Delete_RemesasCliente' + UpdateCommandName = 'Update_RemesasCliente' + RefreshDatasetName = 'RemesasCliente_Refresh' + ReferencedDataset = 'RemesasCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + 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 00000000..4d308031 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas @@ -0,0 +1,101 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDAInterfaces; + +type + { TsrvRemesasCliente } + TsrvRemesasCliente = class(TDARemoteService, IsrvRemesasCliente) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + bpRemesasCliente: TDABusinessProcessor; + schRemesasCliente: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + private + protected + { IsrvRemesasCliente methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + 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.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +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 sólo 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; + +function TsrvRemesasCliente.GenerateReport(const ID: Integer): Binary; +var + AReportGenerator : TRptRemesasCliente; +begin + AReportGenerator := TRptRemesasCliente.Create(nil); + try + Result := AReportGenerator.GenerarRemesa(ID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvRemesasCliente.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..1c7503ee --- /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.dpk b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk new file mode 100644 index 00000000..e0613327 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk @@ -0,0 +1,99 @@ +package RemesasCliente_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 + rtl, + vcl, + dbrtl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + JvCoreD10R, + Jcl, + JclVcl, + JvAppFrmD10R, + JvSystemD10R, + PngComponentsD10, + PNG_D10, + dsnap, + adortl, + Familias_model, + Familias_controller, + tbx_d10, + tb2k_d10, + JvPageCompsD10R, + JvStdCtrlsD10R, + dxLayoutControlD10, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvGlobusD10R, + VclSmp, + bdertl, + vclie, + frx10, + fs10, + fqb100, + frxe10, + frxTee10, + fsTee10, + tee, + teeui, + teedb, + RemesasCliente_controller, + RemesasCliente_data, + RemesasCliente_model, + BancaElectronica_controller; + +contains + uViewRemesasCliente in 'uViewRemesasCliente.pas' {frViewRemesasCliente: TFrame}, + uEditorRemesasCliente in 'uEditorRemesasCliente.pas' {fEditorRemesasCliente: TfEditorArticulos}, + uRemesasClienteViewRegister in 'uRemesasClienteViewRegister.pas', + uViewRemesaCliente in 'uViewRemesaCliente.pas' {frViewRemesaCliente: TFrame}, + uEditorRemesaCliente in 'uEditorRemesaCliente.pas' {fEditorRemesaCliente: TfEditorRemesaCliente}, + uViewRecibosRemesaCliente_2 in 'uViewRecibosRemesaCliente_2.pas' {frViewRecibosRemesaCliente2: TFrame}, + uEditorRemesaClienteReport in 'uEditorRemesaClienteReport.pas' {fEditorRemesaClienteReport: TfEditorRemesaClienteReport}, + uViewRecibosRemesaCliente in 'uViewRecibosRemesaCliente.pas' {frViewRecibosRemesaCliente: TFrame}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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/uEditorFacturasClienteReport.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorFacturasClienteReport.dfm new file mode 100644 index 00000000..4812f26e --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorFacturasClienteReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview + Caption = 'Previsualizar la factura' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorFacturasClienteReport.pas b/Source/Modulos/Remesas de cliente/Views/uEditorFacturasClienteReport.pas new file mode 100644 index 00000000..ab8b2a9f --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorFacturasClienteReport.pas @@ -0,0 +1,28 @@ +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; + +type + TfEditorFacturasClientePreview = class(TfEditorPreview, IEditorFacturasClientePreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. 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 00000000..c1959473 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dfm @@ -0,0 +1,1797 @@ +inherited fEditorRemesaCliente: TfEditorRemesaCliente + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de remesa de cobro' + ClientHeight = 538 + ClientWidth = 676 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 684 + ExplicitHeight = 572 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 676 + Caption = 'Remesa de cobro' + ExplicitWidth = 676 + inherited Image1: TImage + Left = 649 + 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 + end + inherited TBXDock: TTBXDock + Width = 676 + ExplicitWidth = 676 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 592 + 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 = 676 + Height = 397 + MultiLine = True + ExplicitWidth = 676 + ExplicitHeight = 397 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 668 + ExplicitHeight = 369 + inline frViewRemesaCliente1: TfrViewRemesaCliente + Left = 0 + Top = 0 + Width = 668 + Height = 121 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 668 + ExplicitHeight = 121 + inherited dxLayoutControlRemesaCliente: TdxLayoutControl + Width = 668 + Height = 129 + Align = alTop + ExplicitWidth = 668 + ExplicitHeight = 129 + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 326 + Width = 326 + end + inherited eDescripcion: TcxDBTextEdit + ExplicitWidth = 540 + Width = 540 + end + inherited edtFechaRemesa: TcxDBDateEdit + Left = 495 + ExplicitLeft = 495 + ExplicitWidth = 170 + Width = 170 + end + inherited cbCuentaBancaria: TcxDBLookupComboBox + ExplicitWidth = 39 + Width = 39 + end + end + inherited dsDataTable: TDADataSource + Left = 104 + Top = 24 + end + inherited dsDatosBanco: TDADataSource + Left = 120 + end + end + inline frViewRecibosRemesaCliente1: TfrViewRecibosRemesaCliente + Left = 0 + Top = 121 + Width = 668 + Height = 248 + 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 = 121 + ExplicitWidth = 668 + ExplicitHeight = 248 + inherited cxGrid: TcxGrid + Left = 15 + Width = 638 + Height = 208 + ExplicitLeft = 15 + ExplicitWidth = 638 + ExplicitHeight = 208 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = frViewRecibosRemesaCliente1.cxGridViewUSUARIO + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosRemesaCliente1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.OnAfterSummary = frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary + inherited cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + FooterAlignmentHorz = taRightJustify + end + end + end + inherited ToolBar1: TToolBar + Left = 15 + Width = 638 + ExplicitLeft = 15 + ExplicitWidth = 638 + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 519 + Width = 676 + Panels = < + item + Width = 200 + end> + ExplicitTop = 519 + ExplicitWidth = 676 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 473 + 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 = 473 + ExplicitWidth = 676 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 676 + ExplicitWidth = 676 + inherited Bevel1: TBevel + Left = 92 + Top = 91 + Width = 73 + ExplicitLeft = 92 + ExplicitTop = 91 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 336 + Top = 10 + Height = 30 + ExplicitLeft = 336 + ExplicitTop = 10 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 448 + Top = 91 + Width = 192 + ExplicitLeft = 448 + ExplicitTop = 91 + ExplicitWidth = 192 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 163 + Top = 111 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 163 + ExplicitTop = 111 + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 519 + Top = 37 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 519 + ExplicitTop = 37 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 449 + Top = 111 + Style.IsFontAssigned = True + ExplicitLeft = 449 + ExplicitTop = 111 + ExplicitWidth = 137 + Width = 137 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 92 + Top = 111 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 111 + end + inherited edtIVA: TcxDBSpinEdit + Left = 448 + Top = 37 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 448 + ExplicitTop = 37 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 448 + Top = 10 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 448 + ExplicitTop = 10 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 448 + Top = 64 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 448 + ExplicitTop = 64 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 519 + Top = 64 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 519 + ExplicitTop = 64 + ExplicitWidth = 56 + Width = 56 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 92 + Top = 10 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 10 + ExplicitWidth = 147 + Width = 147 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 92 + Top = 138 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 92 + ExplicitTop = 138 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Left = 92 + Top = 37 + DataBinding.DataField = '' + ExplicitLeft = 92 + ExplicitTop = 37 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 188 + Top = 37 + ExplicitLeft = 188 + ExplicitTop = 37 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 92 + Top = 64 + DataBinding.DataField = '' + ExplicitLeft = 92 + ExplicitTop = 64 + ExplicitWidth = 219 + Width = 219 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item14: 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 00000000..58dd66bc --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas @@ -0,0 +1,339 @@ +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; + +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; + + public + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils, cxControls, uDataModuleUsuarios, uDialogUtils, uCustomEditor, + uDataModuleRemesasCliente, uDataModuleBase, uBizFamilias, uFamiliasController, + 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; + bEsNuevo := False; + + 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 código ' + 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 + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')'; +end; + +procedure TfEditorRemesaCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FRemesaCliente); +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 ningún almacén 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[1]) then + AImporteTotal := 0 + else + AImporteTotal := ASender.FooterSummaryValues[1]; + + 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?', 'Atención', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FRemesaCliente) then + actRefrescar.Execute; + end; +end; + +end. + 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 00000000..2f044636 --- /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 00000000..90fd8b7c --- /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.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm new file mode 100644 index 00000000..1d20f0f5 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm @@ -0,0 +1,1519 @@ +inherited fEditorRemesasCliente: TfEditorRemesasCliente + Left = 489 + Top = 325 + Caption = 'Lista de remesas de cobro' + ClientWidth = 820 + ExplicitWidth = 828 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 820 + Caption = 'Lista de remesas de cobro' + 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 = 552 + object TBXSeparatorItem17: TTBXSeparatorItem [12] + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 260 + 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 + 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 +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 00000000..9db51b9f --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.pas @@ -0,0 +1,194 @@ +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; + +type + TfEditorRemesasCliente = class(TfEditorGridBase, IEditorRemesasCliente) + actVolcarDisco: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + N4: TMenuItem; + Volcaradisco1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + procedure actVolcarDiscoUpdate(Sender: TObject); + 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; + + + //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, + //uEditorRemesaCliente, + uEditorDBBase, uBizFamilias, uFamiliasController, + uBancaElectronicaController, + cxGrid, cxGridCustomTableView; //, uListaRemesasCliente; + +{$R *.dfm} + +{ +****************************** TfEditorRemesasCliente ******************************* +} +procedure TfEditorRemesasCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesasCliente) then + raise Exception.Create('No hay ningún RemesaCliente asignado'); + + RemesasCliente.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRemesasCliente.GetRemesasCliente: IBizRemesaCliente; +begin + Result := FRemesasCliente; +end; + +procedure TfEditorRemesasCliente.ImprimirInterno; +begin +// inherited; + FController.Print(RemesasCliente); +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.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de remesas de cobro - ' + dmUsuarios.EmpresaActual.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRemesasCliente.PrevisualizarInterno; +begin +// inherited; + FController.Preview(RemesasCliente); +end; + +procedure TfEditorRemesasCliente.SetRemesasCliente(const Value: IBizRemesaCliente); +begin + FRemesasCliente := Value; + dsDataTable.DataTable := FRemesasCliente.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRemesasCliente).RemesasCliente := RemesasCliente; +end; + +procedure TfEditorRemesasCliente.SetController(const Value: IRemesasClienteController); +begin + FController := Value; +end; + +destructor TfEditorRemesasCliente.Destroy; +begin + FRemesasCliente := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorRemesasCliente.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar esta remesa de cobro?', '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(RemesasCliente) then + actRefrescar.Execute; + end; +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. + 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 00000000..029197c8 --- /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.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm new file mode 100644 index 00000000..f7f649cb --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm @@ -0,0 +1,147 @@ +inherited frViewRecibosRemesaCliente: TfrViewRecibosRemesaCliente + Width = 549 + Height = 376 + ExplicitWidth = 549 + ExplicitHeight = 376 + inherited cxGrid: TcxGrid + Width = 549 + Height = 351 + ExplicitWidth = 549 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + 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 + 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 00000000..c790e209 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas @@ -0,0 +1,129 @@ +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; + +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; + protected + FHayCambios : Boolean; + FRemesa : IBizRemesaCliente; + FController : IRemesasClienteController; + + 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) then + begin + Modified := True; + end; +end; + +constructor TfrViewRecibosRemesaCliente.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; +end; + +destructor TfrViewRecibosRemesaCliente.Destroy; +begin + 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 00000000..a8a129c6 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.dfm @@ -0,0 +1,278 @@ +inherited frViewRecibosRemesaCliente2: TfrViewRecibosRemesaCliente2 + Width = 531 + Height = 339 + ExplicitWidth = 531 + ExplicitHeight = 339 + inherited cxGrid: TcxGrid + Top = 131 + Width = 531 + Height = 182 + ExplicitTop = 29 + ExplicitWidth = 531 + ExplicitHeight = 339 + 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 + ExplicitLeft = -137 + ExplicitWidth = 668 + 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 TBXDock1: TTBXDock + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 527 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 189 + Width = 189 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 527 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 313 + 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 + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + 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 00000000..35859f18 --- /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, dxPScxGridLnk, 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.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm new file mode 100644 index 00000000..c61f9633 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm @@ -0,0 +1,194 @@ +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 + 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 + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 164 + end + object eDescripcion: TcxDBTextEdit + Left = 110 + Top = 84 + 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 + 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 = 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.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + object cbCuentaBancaria: TcxDBLookupComboBox + Left = 110 + Top = 57 + DataBinding.DataField = 'ID_DATOS_BANCO' + DataBinding.DataSource = dsDataTable + Properties.GridMode = True + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsDatosBanco + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + 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 = 2 + Width = 39 + 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 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 00000000..22d1b922 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.pas @@ -0,0 +1,106 @@ +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; + +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; + + 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; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleUsuarios; + + +{ TfrViewRemesaClientes } + +{ +******************************* TfrViewRemesaClientes ******************************** +} + +function TfrViewRemesaCliente.GetRemesaCliente: IBizRemesaCliente; +begin + Result := FRemesaCliente; +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 := dmUsuarios.EmpresaActual.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.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm new file mode 100644 index 00000000..0a156d19 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm @@ -0,0 +1,190 @@ +inherited frViewRemesasCliente: TfrViewRemesasCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + 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> + OptionsBehavior.PullFocusing = True + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 118 + 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 cxGridViewSUFIJO_N19: TcxGridDBColumn + DataBinding.FieldName = 'SUFIJO_N19' + Visible = False + end + object cxGridViewSUFIJO_N58: TcxGridDBColumn + DataBinding.FieldName = 'SUFIJO_N58' + 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 frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDock1: TTBXDock + 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 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + object PngImageList: 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 = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000001274944415478DA + DD923D4A035110C7FFAB60A208795B585865636795A4538CF0F4089A3EC113E4 + 0E5E20E00536584AD2682382BBA085A0984DC0D6B72FA0310AD9599068045947 + B052F015A97460986198F9315F5692249844AC7F08B02C0BDBA725C96E95557E + 857D56B7B979EEFFC8FF1E287BEB5208515FB49D3C5B2420B455802985CE2B50 + 3BD83AF34D00773957A8AC391B78E1E23E29DC50805069BC29344E76BA551320 + 5C2DCAEC92C88128C21D425C33208A34665A421FEF761D2360A558C8CE4160C8 + 1DDC33E096343477906A6574B0D73302DC944045D8027D068C10631C119EDA31 + E6BD4CE362BF671C41CE46A80FED383F1284078A31AD80670F9D054AD72E0F07 + BF2FF1F38CE5664912C555DEBC1C10214DF0DF69EC5E1D3D9ACF38F123FD3DC0 + 07A932AEE15E52559F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000E54944415478DADD902172C3301045BF4F10C3320B9645B0ACEE0D7C + 83F806F5110C0BD51B6C99A160E1C2C085850B0D372C655965DCA28C3D9DB27C + CD8E44FEDBFF55E19FAAEE104013B77EF53ED100B3595967637A1B7813B098C7 + F8149E435DC3CE807C29F2943FD48C784ABC0520371FF64D83D377597FF201F8 + 28C899DE39D3B005D0AE8B0DB0FB3597143A2B98195EA3DA0248DBC67D79FF98 + B100682278857540224EF131BCD64BFF62363FE215540594C675C098728BB3F5 + 2184031C72DDAE1EFFC89EC85EE493D63FB1A81F526BA65D7808BDA8EE1C0611 + B969BE09F8ABEE007001C1D97F1131BF40440000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 160 + Top = 32 + Bitmap = {} + 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 00000000..5b4d68f8 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.pas @@ -0,0 +1,92 @@ +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, dxPScxGridLnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg; + +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) + PngImageList: TPngImageList; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + cxGridViewID_EMPRESA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_REMESA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewENTIDAD: TcxGridDBColumn; + cxGridViewSUCURSAL: TcxGridDBColumn; + cxGridViewDC: TcxGridDBColumn; + cxGridViewCUENTA: TcxGridDBColumn; + cxGridViewSUFIJO_N19: TcxGridDBColumn; + cxGridViewSUFIJO_N58: TcxGridDBColumn; + procedure cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + 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; + + +{$R *.dfm} + +{ TfrViewRemesasCliente } + +{ +******************************* TfrViewRemesasCliente ******************************* +} +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; + + +procedure TfrViewRemesasCliente.cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); + ADone := True; +end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.bdsproj b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.bdsproj new file mode 100644 index 00000000..663d05eb --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiendaWeb_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/Tienda web/Controller/TiendaWeb_controller.dpk b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.dpk new file mode 100644 index 00000000..e08ecf45 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.dpk @@ -0,0 +1,73 @@ +package TiendaWeb_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + DataAbstract_D10, + Base, + GUIBase, + Usuarios, + Contactos_model, + Contactos_controller, + Articulos_model, + Articulos_controller, + PedidosCliente_model, + PedidosCliente_controller, + TiendaWeb_model, + TiendaWeb_data, + dbexpress; + +contains + uTiendaWebController in 'uTiendaWebController.pas', + uIEditorTiendaWeb in 'View\uIEditorTiendaWeb.pas', + uOscCustomersController in 'uOscCustomersController.pas', + uOscAddressBookController in 'uOscAddressBookController.pas', + uOscManufacturersController in 'uOscManufacturersController.pas', + uIEditorActualizarTiendaWeb in 'View\uIEditorActualizarTiendaWeb.pas', + uActualizarClientesUtils in 'Utiles\uActualizarClientesUtils.pas', + uActualizarProveedoresUtils in 'Utiles\uActualizarProveedoresUtils.pas', + uOscProductsController in 'uOscProductsController.pas', + uActualizarArticulosUtils in 'Utiles\uActualizarArticulosUtils.pas', + uOscOrdersController in 'uOscOrdersController.pas', + uOscOrderProductsController in 'uOscOrderProductsController.pas', + uActualizarPedidosUtils in 'Utiles\uActualizarPedidosUtils.pas'; + +end. diff --git a/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.rc b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.res b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Tienda web/Controller/TiendaWeb_controller.res differ diff --git a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarArticulosUtils.pas b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarArticulosUtils.pas new file mode 100644 index 00000000..688faa23 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarArticulosUtils.pas @@ -0,0 +1,277 @@ +unit uActualizarArticulosUtils; + +interface + +uses + Forms, Classes, Windows, SysUtils, + uBizTiendaWeb, JSDialog, ExtCtrls; + +function ActualizarArticulosTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + +implementation + +uses + uArticulosController, uBizArticulos, + uOscProductsController, uProveedoresController, uOscManufacturersController, + uBizOscManufacturers, uBizOscProducts, + uPasswordUtils, schTiendaWebClient_Intf, uDADataTable, + uBizContactos, uBizDireccionesContacto, + schContactosClient_Intf, JSDialogs, uDialogUtils, StrUtils, uIntegerListUtils, + schArticulosClient_Intf; + + +function AnadirOSCProduct(AOSCProducts : IBizOscProduct; AArticulo : IBizArticulo): Boolean; +var + AOSCProductController : IOscProductsController; + AOSCManufacturersController : TOscManufacturersController; + AOSCManufacturer : IBizOscManufacturer; + Resultado : Boolean; +begin + Result := True; + + if not Assigned(AOSCProducts) then + raise Exception.Create ('OSCProducts no asignado (AnadirOSCProduct)'); + + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignado (AnadirOSCProduct)'); + + AArticulo.DataTable.Active := True; + + AOSCProductController := TOscProductsController.Create; + AOSCProducts.DataTable.Active := True; + + AOSCManufacturersController := TOscManufacturersController.Create; + AOSCManufacturer := AOSCManufacturersController.Buscar(AArticulo.ID_PROVEEDOR); + AOSCManufacturer.DataTable.Active := True; + if (AOSCManufacturer.DataTable.RecordCount = 0) then + raise Exception.CreateFmt('No se ha encontrado el proveedor %d en la tienda web (AnadirOSCProduct)', [AArticulo.ID_PROVEEDOR]); + + try + AOSCProductController.Anadir(AOSCProducts); + with AOSCProducts do + begin + products_name := AArticulo.DESCRIPCION; + products_model := AArticulo.REFERENCIA_PROV; + products_date_added := Now; + manufacturers_id := AOSCManufacturer.manufacturers_id; + rdx_products_id_local := AArticulo.ID; + products_status := 1; + Post; + end; + AOSCProductController.Guardar(AOSCProducts); + + finally + AOSCProductController := NIL; + AOSCManufacturer := NIL; + AOSCManufacturersController := NIL; + end; +end; + + +function ActualizarOSCProduct(AOSCProducts : IBizOscProduct; AArticulo : IBizArticulo) : Boolean; +var + AOSCProductController : IOscProductsController; + AOSCManufacturersController : TOscManufacturersController; + AOSCManufacturer : IBizOscManufacturer; + Resultado : Boolean; +begin + Result := True; + + if not Assigned(AOSCProducts) then + raise Exception.Create ('OSCProducts no asignado (ActualizarOSCProduct)'); + + if not Assigned(AArticulo) then + raise Exception.Create ('Artículo no asignado (ActualizarOSCProduct)'); + + AArticulo.DataTable.Active := True; + + AOSCProductController := TOscProductsController.Create; + AOSCProducts.DataTable.Active := True; + + AOSCManufacturersController := TOscManufacturersController.Create; + AOSCManufacturer := AOSCManufacturersController.Buscar(AArticulo.ID_PROVEEDOR); + AOSCManufacturer.DataTable.Active := True; + if (AOSCManufacturer.DataTable.RecordCount = 0) then + raise Exception.CreateFmt('No se ha encontrado el proveedor %d en la tienda web (ActualizarOSCProduct)', [AArticulo.ID_PROVEEDOR]); + + try + if not AOSCProductController.Localizar(AOSCProducts, AArticulo.ID) then + raise Exception.CreateFmt('No se ha localizado el producto con ID = %d', [AArticulo.ID]); + + with AOSCProducts do + begin + Edit; + products_name := AArticulo.DESCRIPCION; + products_model := AArticulo.REFERENCIA_PROV; + products_last_modified := Now; + manufacturers_id := AOSCManufacturer.manufacturers_id; + products_status := 1; + Post; + end; + AOSCProductController.Guardar(AOSCProducts); + + finally + AOSCProductController := NIL; + AOSCManufacturer := NIL; + AOSCManufacturersController := NIL; + end; +end; + +function HayCambiosPendientes(AArticulo : IBizArticulo; const UltimaSincro : TDateTime): Boolean; +begin + if not Assigned(AArticulo) then + raise Exception.Create ('Artículo no asignado (HayCambiosPendientes)'); + + AArticulo.DataTable.Active := True; + + Result := (AArticulo.FECHA_MODIFICACION > UltimaSincro); +end; + +function ActualizarArticulosTienda(ATiendaWeb : IBizTiendaWeb): Boolean; +var + AProveedoresController : IProveedoresController; + AProveedores : IBizProveedor; + + AOSCProductController : IOscProductsController; + AOSCProducts : IBizOscProduct; + + AArticulosController : IArticulosController; + AArticulos : IBizArticulo; + + i : Integer; + + //ADlg : TJSDialog; + Resultado : Boolean; + s : String; + + AProductList : TIntegerList; + AIndex : Integer; + AContadorProv: Integer; + AContadorArt : Integer; +begin + Result := False; + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + try + AProveedoresController := TProveedoresController.Create; + AArticulosController := TArticulosController.Create; + AOSCProductController := TOscProductsController.Create; + + AProductList := TIntegerList.Create; + + {ADlg := TJSDialog.Create(nil); + with ADlg do + begin + Title := 'Actualización de artículos'; + DialogOptions := [doProgressBar, doTopMost]; + ButtonBar.Buttons := []; + Instruction.Text := 'Actualizando artículos...'; + Content.Text := Format('Progreso: %d%%', [0]); + Expando.Visible := True; + Expando.MoreHeight := 200; + Expando.ShowInFooter := True; + Expando.ShowText := 'Ver más detalles...'; + Expando.HideText := 'Ocultar detalles...'; + Progress.Max := 100; + end;} + + // Recupero todos los proveedores que hay en la tienda + AProveedores := (AProveedoresController.BuscarTodosTiendaWeb as IBizProveedor); + AProveedores.DataTable.Active := True; + AProveedores.DataTable.First; + + AOSCProducts := AOSCProductController.BuscarTodos; + AOSCProducts.DataTable.Active := True; + AOSCProducts.DataTable.First; + + {if AProveedores.DataTable.RecordCount > 0 then + ADlg.Progress.Max := AProveedores.DataTable.RecordCount;} + + for AContadorProv := 0 to AProveedores.DataTable.RecordCount - 1 do + begin + // Por cada uno de los proveedores: + // - Recupero todos los artículos que sirve + // - Actualizo la tienda + + AArticulos := AArticulosController.BuscarTodos(AProveedores); + AArticulos.DataTable.Active := True; + AArticulos.DataTable.First; + + for AContadorArt := 0 to AArticulos.DataTable.RecordCount - 1 do + begin + Application.ProcessMessages; + + {with ADlg do + begin + Content.Text := Format('Progreso: %d%%', [Progress.Position*100 div ADlg.Progress.Max]); + UpdateProgress; + Application.ProcessMessages; + end;} + + if not AOSCProductController.Localizar(AOSCProducts, AArticulos.ID) then + begin + s := Format('Añadiendo %15s... ', [AArticulos.DESCRIPCION]); + Resultado := AnadirOSCProduct(AOSCProducts, AArticulos); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else begin + if HayCambiosPendientes(AArticulos, ATiendaWeb.ULTIMA_ACTUALIZACION) then + begin + s := Format('Actualizando %15s... ', [AArticulos.DESCRIPCION]); + Resultado := ActualizarOSCProduct(AOSCProducts, AArticulos); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else + s := Format('%15s... sin cambios', [AArticulos.DESCRIPCION]); + end; + + //ADlg.Expando.Lines.Add(s); + AProductList.Add(AArticulos.ID); + AArticulos.DataTable.Next; + end; + + // Avanzo al siguiente proveedor + AProveedores.DataTable.Next; + end; + + // Ahora hay que eliminar de OSC los artículos que sobran + AOSCProducts.Last; + for I := (AOSCProducts.DataTable.RecordCount - 1) downto 0 do + begin + Application.ProcessMessages; + if not AProductList.Find(AOSCProducts.rdx_products_id_local, AIndex) then + begin + s := Format('Eliminado %15s... ', [AOSCProducts.products_name]); + //ADlg.Expando.Lines.Add(s); + AOSCProducts.Delete; + end; + AOSCProducts.Prior; + end; + AOSCProductController.Guardar(AOSCProducts); + + Application.ProcessMessages; + Result := True; + finally + {ADlg.Close; + FreeAndNIL(ADlg);} + + FreeAndNIL(AProductList); + + AProveedoresController := NIL; + AArticulosController := NIL; + AOSCProductController := NIL; + AOSCProducts := NIL; + AProveedores := NIL; + AArticulos := NIL; + end; +end; + + +end. diff --git a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarClientesUtils.pas b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarClientesUtils.pas new file mode 100644 index 00000000..a0e037ba --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarClientesUtils.pas @@ -0,0 +1,475 @@ +unit uActualizarClientesUtils; + +interface + +uses + Forms, Classes, Windows, SysUtils, + uBizTiendaWeb, JSDialog, ExtCtrls; + +function ActualizarClientesTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + +implementation + +uses + uClientesController, uOscAddressBookController, uDireccionesContactoController, + uOscCustomersController, uBizOscAddressBook, uBizOscCustomers, + uPasswordUtils, schTiendaWebClient_Intf, uDADataTable, uBizContactos, uBizDireccionesContacto, + schContactosClient_Intf, JSDialogs, uDialogUtils, StrUtils, uIntegerListUtils; + +const + OSC_CUSTOMER_GENDER = 'm'; + OSC_CUSTOMER_COUNTRY_ID = 195; // España + OSC_CUSTOMER_ZONE_ID = 161; // Madrid + +function AnadirOSCAddressBook(AOSCAddressBook : IBizOscAddressBook; ACliente : IBizCliente; ADireccionContacto : IBizDireccionesContacto) : Boolean; +begin + Result := False; + + if not Assigned(AOSCAddressBook) then + raise Exception.Create ('OSCAddressBook no asignado (AnadirOSCAddressBook)'); + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (AnadirOSCAddressBook)'); + + if not Assigned(ADireccionContacto) then + raise Exception.Create ('Dirección no asignada (AnadirOSCAddressBook)'); + + ACliente.DataTable.Active := True; + ADireccionContacto.DataTable.Active := True; + AOSCAddressBook.DataTable.Active := True; + + with AOSCAddressBook do + begin + Insert; + rdx_address_book_id_local := ADireccionContacto.ID; + entry_company := ACliente.NOMBRE_COMERCIAL; + entry_gender := OSC_CUSTOMER_GENDER; // No puede ser nulo + entry_firstname := ACliente.NOMBRE; + entry_lastname := ''; // No puede ser nulo + entry_street_address := ADireccionContacto.CALLE; + entry_postcode := ADireccionContacto.CODIGO_POSTAL; + entry_city := ADireccionContacto.POBLACION; + entry_state := ADireccionContacto.PROVINCIA; + entry_telephone := ADireccionContacto.TELEFONO; + entry_country_id := OSC_CUSTOMER_COUNTRY_ID; // No puede ser nulo + entry_zone_id := OSC_CUSTOMER_ZONE_ID; // No puede ser nulo + Post; + end; + + Result := True; +end; + + +function ActualizarOSCAddressBook(AOSCAddressBook : IBizOscAddressBook; ACliente : IBizCliente; ADireccionContacto : IBizDireccionesContacto): Boolean; +begin + Result := False; + + if not Assigned(AOSCAddressBook) then + raise Exception.Create ('OSCAddressBook no asignado (ActualizarOSCAddressBook)'); + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (ActualizarOSCAddressBook)'); + + if not Assigned(ADireccionContacto) then + raise Exception.Create ('Dirección no asignada (ActualizarOSCAddressBook)'); + + ACliente.DataTable.Active := True; + ADireccionContacto.DataTable.Active := True; + AOSCAddressBook.DataTable.Active := True; + + with AOSCAddressBook do + begin + Edit; + entry_company := ACliente.NOMBRE_COMERCIAL; + entry_gender := OSC_CUSTOMER_GENDER; // No puede ser nulo + entry_firstname := ACliente.NOMBRE; + entry_lastname := ''; // No puede ser nulo + entry_street_address := ADireccionContacto.CALLE; + entry_postcode := ADireccionContacto.CODIGO_POSTAL; + entry_city := ADireccionContacto.POBLACION; + entry_state := ADireccionContacto.PROVINCIA; + entry_telephone := ADireccionContacto.TELEFONO; + entry_country_id := OSC_CUSTOMER_COUNTRY_ID; // No puede ser nulo + entry_zone_id := OSC_CUSTOMER_ZONE_ID; // No puede ser nulo + Post; + end; + + Result := True; +end; + + +function AnadirOSCCustomer(AOSCCustomers : IBizOscCustomer; ACliente : IBizCliente): Boolean; +var + AOSCCustomerController : IOscCustomersController; + i : Integer; + Resultado : Boolean; + s : string; +begin + { + CUIDADITO CON EL MYSQL Y LOS CAMPOS AUTOINC + + Orden para insertar los datos: + + 1º -> Guardar la ficha del cliente + 2º -> Guardar todas las direcciones + 3ª -> Actualizar la ficha del cliente con la dirección de entrega por defecto. + } + + Result := True; + + if not Assigned(AOSCCustomers) then + raise Exception.Create ('OSCCustomers no asignado (AnadirOSCCustomer)'); + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (AnadirOSCCustomer)'); + + ACliente.DataTable.Active := True; + + AOSCCustomerController := TOscCustomersController.Create; + AOSCCustomers.DataTable.Active := True; + + try + AOSCCustomerController.Anadir(AOSCCustomers); + with AOSCCustomers do + begin + customers_firstname := ACliente.NOMBRE; + customers_lastname := ''; // No puede ser nulo + customers_email_address := ACliente.EMAIL_1; + customers_telephone := ACliente.TELEFONO_1; + customers_fax := ACliente.FAX; + customers_password := EncriptarPasswordOSC(ACliente.NIF_CIF); + rdx_customers_id_local := ACliente.ID; + Post; + end; + // Guardo el customer + AOSCCustomerController.Guardar(AOSCCustomers); + + ACliente.Direcciones.DataTable.First; + for i := 0 to ACliente.Direcciones.DataTable.RecordCount - 1 do + begin + Resultado := AnadirOSCAddressBook(AOSCCustomers.AddressBook, ACliente, ACliente.Direcciones); + Result := Result AND Resultado; + ACliente.Direcciones.DataTable.Next; + end; + // Guardo todas sus direcciones + AOSCCustomerController.Guardar(AOSCCustomers); + + AOSCCustomers.AddressBook.DataTable.First; + with AOSCCustomers do + begin + Edit; + customers_default_address_id := AOSCCustomers.AddressBook.address_book_id; + Post; + end; + // Guardo la dirección de entrega por defecto en la ficha del customer + AOSCCustomerController.Guardar(AOSCCustomers); + + {s := AOSCCustomers.customers_firstname + #10#13 + 'AOSCCustomers.customers_id -> ' + IntToStr(AOSCCustomers.customers_id) + + #10#13 + #10#13 + 'AOSCCustomers.AddressBook:' + #10#13; + + AOSCCustomers.AddressBook.DataTable.First; + for i := 0 to AOSCCustomers.AddressBook.DataTable.RecordCount - 1 do + begin + s := s + Format(' [%d] -> %d', [i, AOSCCustomers.AddressBook.address_book_id]) + #10#13; + AOSCCustomers.AddressBook.DataTable.Next; + end; + + ShowMessage(s);} + + + finally + AOSCCustomerController := NIL; + end; +end; + + +function ActualizarOSCCustomer(AOSCCustomers : IBizOscCustomer; ACliente : IBizCliente) : Boolean; +var + AOSCCustomerController : IOscCustomersController; + AOSCAddressController : IOscAddressBookController; + ADireccionesController : IDireccionesContactoController; + i : Integer; + Resultado : Boolean; +begin + Result := True; + + if not Assigned(AOSCCustomers) then + raise Exception.Create ('OSCCustomers no asignado (ActualizarOSCCustomer)'); + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (ActualizarOSCCustomer)'); + + ACliente.DataTable.Active := True; + + AOSCCustomerController := TOscCustomersController.Create; + AOSCAddressController := TOscAddressBookController.Create; + ADireccionesController := TDireccionesContactoController.Create; + + AOSCCustomers.DataTable.Active := True; + try + if not AOSCCustomerController.Localizar(AOSCCustomers, ACliente.ID) then + raise Exception.CreateFmt('No se ha localizado el customer con ID = %d', [ACliente.ID]); + + with AOSCCustomers do + begin + Edit; + customers_firstname := ACliente.NOMBRE; + customers_lastname := ''; // No puede ser nulo + customers_email_address := ACliente.EMAIL_1; + customers_telephone := ACliente.TELEFONO_1; + customers_fax := ACliente.FAX; + Post; + end; + AOSCCustomerController.Guardar(AOSCCustomers); + + // Comprobar si hay que borrar algún address + AOSCCustomers.AddressBook.Last; + for i := 0 to AOSCCustomers.AddressBook.RecordCount - 1 do + begin + if (AOSCCustomers.AddressBook.rdx_address_book_id_local > 0) and + not ADireccionesController.Localizar(ACliente.Direcciones, AOSCCustomers.AddressBook.rdx_address_book_id_local) + then + AOSCCustomers.AddressBook.Delete + else + AOSCCustomers.AddressBook.Prior; + end; + + ACliente.Direcciones.DataTable.First; + for i := 0 to ACliente.Direcciones.DataTable.RecordCount - 1 do + begin + + if not AOSCAddressController.Localizar(AOSCCustomers.AddressBook, ACliente.Direcciones.ID) then + Resultado := AnadirOSCAddressBook(AOSCCustomers.AddressBook, ACliente, ACliente.Direcciones) + else + Resultado := ActualizarOSCAddressBook(AOSCCustomers.AddressBook, ACliente, ACliente.Direcciones); + + Result := Result AND Resultado; + ACliente.Direcciones.DataTable.Next; + end; + AOSCCustomerController.Guardar(AOSCCustomers); + + //ShowMessage(AOSCCustomers.customers_firstname + #10#13 + 'AOSCCustomers.customers_id -> ' + IntToStr(AOSCCustomers.customers_id)); + + AOSCCustomers.AddressBook.DataTable.First; + with AOSCCustomers do + begin + Edit; + customers_default_address_id := AOSCCustomers.AddressBook.address_book_id; + Post; + end; + // Guardo la dirección de entrega por defecto en la ficha del customer + AOSCCustomerController.Guardar(AOSCCustomers); + + finally + AOSCCustomerController := NIL; + AOSCAddressController := NIL; + ADireccionesController := NIL; + end; +end; + +function HayCambiosPendientes(ACliente : IBizCliente; AOSCCustomer : IBizOscCustomer; + const UltimaSincro : TDateTime): Boolean; +var + i : integer; + Cambiado : Boolean; + ANumAddr : Integer; +begin + { + Casos: + 1 -> El cliente ha cambiado en FactuGES + 2 -> Se ha dado de alta una dirección + 3 -> Se han cambiado los datos de una dirección + 4 -> Se ha eliminado una dirección + } + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (HayCambiosPendientes)'); + + if not Assigned(AOSCCustomer) then + raise Exception.Create ('Customer no asignado (HayCambiosPendientes)'); + + ACliente.DataTable.Active := True; + AOSCCustomer.DataTable.Active := True; + + // 1 -> ¿El cliente ha cambiado en FactuGES? + Cambiado := (ACliente.FECHA_MODIFICACION > UltimaSincro); + if not Cambiado then + begin + ACliente.Direcciones.First; + + { + 2 -> ¿Se ha dado de alta una dirección? + 4 -> ¿Se ha eliminado una dirección? + } + ANumAddr := 0; + AOSCCustomer.AddressBook.First; + for i := 0 to AOSCCustomer.AddressBook.RecordCount - 1 do + begin + // Saber el número de address que tienen relleno el campo rdx_address_book_id_local. + // Si lo tienen relleno quiere decir que provienen de FactuGES y no + // que el cliente las ha dado de alta desde OSC. Esas se ignoran. + if (AOSCCustomer.AddressBook.rdx_address_book_id_local > 0) then + begin + Inc(ANumAddr); + end; + AOSCCustomer.AddressBook.Next; + end; + // Si no coincide el número de calles es que algo ha cambiado + Cambiado := ACliente.Direcciones.RecordCount <> ANumAddr; + + { + 3 -> ¿Se han cambiado los datos de una dirección? + } + if not Cambiado then + begin + for i := 0 to ACliente.Direcciones.RecordCount - 1 do + begin + Cambiado := ((ACliente.Direcciones.FECHA_MODIFICACION > UltimaSincro) or + (ACliente.Direcciones.FECHA_ALTA > UltimaSincro)); + if Cambiado then + Break + else + ACliente.Direcciones.Next; + end; + end; + end; + + Result := Cambiado; +end; + +function ActualizarClientesTienda(ATiendaWeb : IBizTiendaWeb): Boolean; +var + AClientesController : IClientesController; + AClientes : IBizCliente; + + AOSCCustomerController : IOscCustomersController; + AOSCCustomers : IBizOscCustomer; + + i : Integer; + j : Integer; + + //ADlg : TJSDialog; + Resultado : Boolean; + s : String; + + ACustomerList : TIntegerList; + AIndex : Integer; +begin + Result := False; + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + try + AClientesController := TClientesController.Create; + AOSCCustomerController := TOscCustomersController.Create; + + ACustomerList := TIntegerList.Create; + + {ADlg := TJSDialog.Create(Application); + with ADlg do + begin + Title := 'Actualización de clientes'; + DialogOptions := [doProgressBar, doTopMost]; + ButtonBar.Buttons := []; + Instruction.Text := 'Actualizando clientes...'; + Content.Text := Format('Progreso: %d%%', [0]); + Expando.Visible := True; + Expando.MoreHeight := 200; + Expando.ShowInFooter := True; + Expando.ShowText := 'Ver más detalles...'; + Expando.HideText := 'Ocultar detalles...'; + Progress.Max := 100; + end;} + + AClientes := (AClientesController.BuscarTodosTiendaWeb as IBizCliente); + AClientes.DataTable.Active := True; + AClientes.DataTable.First; + + AOSCCustomers := AOSCCustomerController.BuscarTodos; + AOSCCustomers.DataTable.Active := True; + AOSCCustomers.DataTable.First; + + {if AClientes.DataTable.RecordCount > 0 then + ADlg.Progress.Max := AClientes.DataTable.RecordCount; + + ADlg.Execute; + } + + {s := ''; + AOSCCustomers.DataTable.First; + for I := 0 to AOSCCustomers.DataTable.RecordCount - 1 do + begin + s := s + AOSCCustomers.customers_firstname + ' -> ' + IntToStr(AOSCCustomers.rdx_customers_id_local) + #10#13; + AOSCCustomers.DataTable.Next; + end; + ShowMessage(s);} + + for I := 0 to AClientes.DataTable.RecordCount - 1 do + begin + Application.ProcessMessages; + {with ADlg do + begin + Content.Text := Format('Progreso: %d%%', [Progress.Position*100 div ADlg.Progress.Max]); + UpdateProgress; + Application.ProcessMessages; + end;} + + if not AOSCCustomerController.Localizar(AOSCCustomers, AClientes.ID) then + begin + s := Format('Añadiendo %s... ', [AClientes.NOMBRE]); + Resultado := AnadirOSCCustomer(AOSCCustomers, AClientes); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else begin + if HayCambiosPendientes(AClientes, AOSCCustomers, ATiendaWeb.ULTIMA_ACTUALIZACION) then + begin + s := Format('Actualizando %s... ', [AClientes.NOMBRE]); + Resultado := ActualizarOSCCustomer(AOSCCustomers, AClientes); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else + s := Format('%s sin cambios', [AClientes.NOMBRE]); + end; + + //ADlg.Expando.Lines.Add(s); + ACustomerList.Add(AClientes.ID); + AClientes.DataTable.Next; + end; + + // Ahora hay que eliminar de OSC los clientes que sobran + AOSCCustomers.Last; + for I := (AOSCCustomers.DataTable.RecordCount - 1) downto 0 do + begin + Application.ProcessMessages; + if not ACustomerList.Find(AOSCCustomers.rdx_customers_id_local, AIndex) then + begin + s := Format('Eliminado %s... ', [AOSCCustomers.customers_firstname]); + //ADlg.Expando.Lines.Add(s); + AOSCCustomers.Delete; + end; + AOSCCustomers.Prior; + end; + AOSCCustomerController.Guardar(AOSCCustomers); + + + Application.ProcessMessages; + Result := True; + finally + {ADlg.Close; + FreeAndNIL(ADlg);} + + FreeAndNIL(ACustomerList); + + AClientesController := NIL; + AOSCCustomerController := NIL; + AOSCCustomers := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas new file mode 100644 index 00000000..0ff6a54d --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas @@ -0,0 +1,238 @@ +unit uActualizarPedidosUtils; + +interface + +uses + Forms, Classes, Windows, SysUtils, + uBizTiendaWeb, JSDialog, ExtCtrls; + +function ActualizarPedidosTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + +implementation + +uses + uPedidosClienteController, uOscOrderProductsController, uDetallesPedidoClienteController, + uOscOrdersController, uBizOscOrderProducts, uBizOscOrders, uClientesController, + uPasswordUtils, schTiendaWebClient_Intf, uDADataTable, uBizPedidosCliente, + uBizDetallesPedidoCliente, schPedidosClienteClient_Intf, + JSDialogs, uDialogUtils, StrUtils, uIntegerListUtils, + uBizContactos, uControllerDetallesBase; + + +function DarNumSituacionEquivalente(ASituacion : String) : Integer; +begin + if ASituacion = SITUACION_PEDIDO_PENDIENTE then + Result := 1 + else if ASituacion = SITUACION_PEDIDO_ENPROCESO then + Result := 2 + else if ASituacion = SITUACION_PEDIDO_SERVIDO then + Result := 3 + else + Result := -1; +end; + +function AnadirPedido(AOSCOrder : IBizOscOrder; APedido : IBizPedidoCliente): Boolean; +var + APedidosController : IPedidosClienteController; + ADetallesController : IDetallesPedidoClienteController; + AClientesController : IClientesController; + i : Integer; + Resultado : Boolean; +begin + Result := False; + + if not Assigned(AOSCOrder) then + raise Exception.Create ('AOSCOrder no asignado (AnadirPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (AnadirPedido)'); + + AOSCOrder.DataTable.Active := True; + APedido.DataTable.Active := True; + + APedidosController := TPedidosClienteController.Create; + ADetallesController := TDetallesPedidoClienteController.Create; + AClientesController := TClientesController.Create; + + try + APedidosController.Anadir(APedido); + with APedido do + begin + ID_CLIENTE := AOSCOrder.rdx_customers_id_local; + _Cliente := (AClientesController.Buscar(AOSCOrder.rdx_customers_id_local) as IBizCliente); + FECHA_PEDIDO := AOSCOrder.date_purchased; + + CALLE := AOSCOrder.delivery_street_address; + CODIGO_POSTAL := AOSCOrder.delivery_postcode; + POBLACION := AOSCOrder.delivery_city; + PROVINCIA := AOSCOrder.delivery_state; + PERSONA_CONTACTO := AOSCOrder.delivery_name; + TELEFONO := AOSCOrder.delivery_telephone; + REF_TIENDA_WEB := AOSCOrder.orders_id; + + DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant := AOSCOrder.DataTable.FieldByName(fld_osc_Orderscomments).AsVariant; + Post; + end; + + AOSCOrder.OrderProducts.DataTable.First; + for i := 0 to AOSCOrder.OrderProducts.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(APedido.Detalles, TIPO_DETALLE_CONCEPTO); + + // ¡¡¡OJO!!! AnadirArticulo no añade una fila. Sólo rellena el concepto actual + Resultado := ADetallesController.AnadirArticulo(APedido.Detalles, AOSCOrder.OrderProducts.rdx_products_id_local, AOSCOrder.rdx_customers_id_local); + APedido.Detalles.Edit; + APedido.Detalles.CANTIDAD := AOSCOrder.OrderProducts.products_quantity; + APedido.Detalles.Post; + Result := Result AND Resultado; + AOSCOrder.OrderProducts.DataTable.Next; + end; + + // Guardo el pedido + APedidosController.Guardar(APedido); + + AOSCOrder.Edit; + AOSCOrder.rdx_orders_id_local := APedido.ID; + AOSCOrder.Post; + + Result := True; + finally + APedidosController := NIL; + ADetallesController := NIL; + AClientesController := NIL; + end; +end; + +function ActualizarOSCOrder(AOSCOrders : IBizOscOrder; APedido : IBizPedidoCliente) : Boolean; +var + AOSCOrderController : IOscOrdersController; +begin + Result := True; + + if not Assigned(AOSCOrders) then + raise Exception.Create ('OSCOrders no asignado (ActualizarOSCOrder)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (ActualizarOSCOrder)'); + + APedido.DataTable.Active := True; + + AOSCOrderController := TOscOrdersController.Create; + + AOSCOrders.DataTable.Active := True; + try + if not AOSCOrderController.Localizar(AOSCOrders, APedido.ID) then + raise Exception.CreateFmt('No se ha localizado el order con ID = %d', [APedido.ID]); + + with AOSCOrders do + begin + Edit; + orders_status := DarNumSituacionEquivalente(APedido.SITUACION); + if APedido.SITUACION = SITUACION_PEDIDO_SERVIDO then + orders_date_finished := Now; + Post; + end; + AOSCOrderController.Guardar(AOSCOrders); + Result := True; + finally + AOSCOrderController := NIL; + end; +end; + +function HayCambiosPendientes(APedido : IBizPedidoCliente; AOSCOrder : IBizOscOrder; + const UltimaSincro : TDateTime): Boolean; +var + APedidoSituacion : Integer; +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create ('Cliente no asignado (HayCambiosPendientes)'); + + if not Assigned(AOSCOrder) then + raise Exception.Create ('Customer no asignado (HayCambiosPendientes)'); + + APedido.DataTable.Active := True; + AOSCOrder.DataTable.Active := True; + + APedidoSituacion := DarNumSituacionEquivalente(APedido.SITUACION); + if APedidoSituacion <> AOSCOrder.orders_status then + Result := True; +end; + +function ActualizarPedidosTienda(ATiendaWeb : IBizTiendaWeb): Boolean; +var + APedidosClienteController : IPedidosClienteController; + APedidos : IBizPedidoCliente; + + AOSCOrderController : IOscOrdersController; + AOSCOrders : IBizOscOrder; + + i : Integer; + j : Integer; + + Resultado : Boolean; + s : String; + + AIndex : Integer; +begin + Result := False; + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + try + APedidosClienteController := TPedidosClienteController.Create; + AOSCOrderController := TOscOrdersController.Create; + + AOSCOrders := AOSCOrderController.BuscarTodos; + AOSCOrders.DataTable.Active := True; + AOSCOrders.DataTable.First; + + // ATENCION!!! -> Aquí habría que pedir sólo los pedidos que vienen por web no? + APedidos := (APedidosClienteController.BuscarTodos as IBizPedidoCliente); + APedidos.DataTable.Active := True; + APedidos.DataTable.First; + + for I := 0 to AOSCOrders.DataTable.RecordCount - 1 do + begin + Application.ProcessMessages; + + // Si el campo rdx_orders_id_local está vacio, el pedido es nuevo + if (AOSCOrders.rdx_orders_id_local = 0) then + begin + // Hay que añadir el pedido + AnadirPedido(AOSCOrders, APedidos); + // Paso al siguiente + AOSCOrders.DataTable.Next; + end + else begin + // Busco el pedido. Si no lo encuentro, se ha borrado en local + if not APedidosClienteController.Localizar(APedidos, AOSCOrders.rdx_orders_id_local) then + begin + // Borrar el pedido en OSC + AOSCOrderController.Eliminar(AOSCOrders); + // No paso al siguiente porque al eliminar se ha desplazado ya la posición. + end + else begin + if HayCambiosPendientes(APedidos, AOSCOrders, ATiendaWeb.ULTIMA_ACTUALIZACION) then + begin + // Actualizar el estado del pedido en OSC + ActualizarOSCOrder(AOSCOrders, APedidos); + end; + // Paso al siguiente + AOSCOrders.DataTable.Next; + end; + end; + end; + + Application.ProcessMessages; + AOSCOrderController.Guardar(AOSCOrders); + Result := True; + finally + APedidosClienteController := NIL; + AOSCOrderController := NIL; + AOSCOrders := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarProveedoresUtils.pas b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarProveedoresUtils.pas new file mode 100644 index 00000000..54bda5c8 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarProveedoresUtils.pas @@ -0,0 +1,242 @@ +unit uActualizarProveedoresUtils; + +interface + +uses + Forms, Classes, Windows, SysUtils, + uBizTiendaWeb, JSDialog, ExtCtrls; + +function ActualizarProveedoresTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + +implementation + +uses + uProveedoresController, uOscManufacturersController, + uBizOscManufacturers, uPasswordUtils, schTiendaWebClient_Intf, uDADataTable, + uBizContactos, uBizDireccionesContacto, schContactosClient_Intf, + JSDialogs, uDialogUtils, StrUtils, uIntegerListUtils; + + +function AnadirOSCManufacturer(AOSCManufacturers : IBizOscManufacturer; AProveedor : IBizProveedor): Boolean; +var + AOSCManufacturerController : IOscManufacturersController; + i : Integer; + Resultado : Boolean; +begin + Result := True; + + if not Assigned(AOSCManufacturers) then + raise Exception.Create ('OSCManufacturers no asignado (AnadirOSCManufacturer)'); + + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (AnadirOSCManufacturer)'); + + AProveedor.DataTable.Active := True; + + AOSCManufacturerController := TOscManufacturersController.Create; + AOSCManufacturers.DataTable.Active := True; + + try + AOSCManufacturerController.Anadir(AOSCManufacturers); + with AOSCManufacturers do + begin + manufacturers_name := AProveedor.NOMBRE; + date_added := Now; + rdx_manufacturers_id_local := AProveedor.ID; + Post; + end; + AOSCManufacturerController.Guardar(AOSCManufacturers); + + finally + AOSCManufacturerController := NIL; + end; +end; + + +function ActualizarOSCManufacturer(AOSCManufacturers : IBizOscManufacturer; AProveedor : IBizProveedor) : Boolean; +var + AOSCManufacturerController : IOscManufacturersController; + i : Integer; + Resultado : Boolean; +begin + Result := True; + + if not Assigned(AOSCManufacturers) then + raise Exception.Create ('OSCManufacturers no asignado (ActualizarOSCManufacturer)'); + + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (ActualizarOSCManufacturer)'); + + AProveedor.DataTable.Active := True; + + AOSCManufacturerController := TOscManufacturersController.Create; + + AOSCManufacturers.DataTable.Active := True; + try + if not AOSCManufacturerController.Localizar(AOSCManufacturers, AProveedor.ID) then + raise Exception.CreateFmt('No se ha localizado el manufacturer con ID = %d', [AProveedor.ID]); + + with AOSCManufacturers do + begin + Edit; + manufacturers_name := AProveedor.NOMBRE; + last_modified := Now; + Post; + end; + AOSCManufacturerController.Guardar(AOSCManufacturers); + + finally + AOSCManufacturerController := NIL; + end; +end; + +function HayCambiosPendientes(AProveedor : IBizProveedor; const UltimaSincro : TDateTime): Boolean; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (HayCambiosPendientes)'); + + AProveedor.DataTable.Active := True; + + Result := (AProveedor.FECHA_MODIFICACION > UltimaSincro); +end; + +function ActualizarProveedoresTienda(ATiendaWeb : IBizTiendaWeb): Boolean; +var + AProveedoresController : IProveedoresController; + AProveedores : IBizProveedor; + + AOSCManufacturerController : IOscManufacturersController; + AOSCManufacturers : IBizOscManufacturer; + + i : Integer; + + //ADlg : TJSDialog; + Resultado : Boolean; + s : String; + + AManufacturerList : TIntegerList; + AIndex : Integer; +begin + Result := False; + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + AProveedoresController := TProveedoresController.Create; + AOSCManufacturerController := TOscManufacturersController.Create; + + AManufacturerList := TIntegerList.Create; + //ADlg := TJSDialog.Create(nil); + try + {with ADlg do + begin + Title := 'Actualización de proveedores'; + DialogOptions := [doProgressBarMarquee, doTopMost]; + ButtonBar.Buttons := []; + Instruction.Text := 'Actualizando proveedores...'; + Content.Text := Format('Progreso: %d%%', [0]); + Expando.Visible := True; + Expando.MoreHeight := 200; + Expando.ShowInFooter := True; + Expando.ShowText := 'Ver más detalles...'; + Expando.HideText := 'Ocultar detalles...'; + Progress.Max := 100; + end;} + + AProveedores := (AProveedoresController.BuscarTodosTiendaWeb as IBizProveedor); + AProveedores.DataTable.Active := True; + AProveedores.DataTable.First; + + AOSCManufacturers := AOSCManufacturerController.BuscarTodos; + AOSCManufacturers.DataTable.Active := True; + AOSCManufacturers.DataTable.First; + + {if AProveedores.DataTable.RecordCount > 0 then + ADlg.Progress.Max := AProveedores.DataTable.RecordCount; + + ADlg.Execute; + Application.ProcessMessages;} + + for I := 0 to AProveedores.DataTable.RecordCount - 1 do + begin + Application.ProcessMessages; + {with ADlg do + begin + Content.Text := Format('Progreso: %d%%', [Progress.Position*100 div ADlg.Progress.Max]); + //UpdateProgress; + Application.ProcessMessages; + end;} + + if not AOSCManufacturerController.Localizar(AOSCManufacturers, AProveedores.ID) then + begin + s := Format('Añadiendo %s... ', [AProveedores.NOMBRE]); + Resultado := AnadirOSCManufacturer(AOSCManufacturers, AProveedores); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else begin + if HayCambiosPendientes(AProveedores, ATiendaWeb.ULTIMA_ACTUALIZACION) then + begin + s := Format('Actualizando %s... ', [AProveedores.NOMBRE]); + Resultado := ActualizarOSCManufacturer(AOSCManufacturers, AProveedores); + if Resultado then + s := s + 'OK' + else + s := s + 'Fallo'; + end + else + s := Format('%s sin cambios', [AProveedores.NOMBRE]); + end; + + //ADlg.Expando.Lines.Add(s); + + AManufacturerList.Add(AProveedores.ID); + AProveedores.DataTable.Next; + + {with ADlg do + begin + Content.Text := Format('Progreso: %d%%', [Progress.Position*100 div ADlg.Progress.Max]); + //UpdateProgress; + Application.ProcessMessages; + end;} + end; + + // Ahora hay que eliminar de OSC los proveedores que sobran + AOSCManufacturers.Last; + for I := (AOSCManufacturers.DataTable.RecordCount - 1) downto 0 do + begin + Application.ProcessMessages; + if not AManufacturerList.Find(AOSCManufacturers.rdx_manufacturers_id_local, AIndex) then + begin + s := Format('Eliminado %s... ', [AOSCManufacturers.manufacturers_name]); + //ADlg.Expando.Lines.Add(s); + AOSCManufacturers.Delete; + end; + AOSCManufacturers.Prior; + end; + + AOSCManufacturerController.Guardar(AOSCManufacturers); + Application.ProcessMessages; + Result := True; + finally + {ADlg.Close; + FreeAndNIL(ADlg); + Application.ProcessMessages;} + + + FreeAndNIL(AManufacturerList); + + AProveedores.DataTable.Active := False; + AProveedores := NIL; + + AOSCManufacturers.DataTable.Active := False; + AOSCManufacturers := NIL; + + AProveedoresController := NIL; + AOSCManufacturerController := NIL; + end; +end; + + +end. diff --git a/Source/Modulos/Tienda web/Controller/View/uIEditorActualizarTiendaWeb.pas b/Source/Modulos/Tienda web/Controller/View/uIEditorActualizarTiendaWeb.pas new file mode 100644 index 00000000..7224d064 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/View/uIEditorActualizarTiendaWeb.pas @@ -0,0 +1,49 @@ +{ +=============================================================================== + 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 uIEditorActualizarTiendaWeb; + +interface + +uses + uBizTiendaWeb; + +type + IEditorActualizarTiendaWeb = interface + ['{8550221C-B60C-48EA-AB91-1913116F30C3}'] +{ function GetTiendaWeb: IBizTiendaWeb; + procedure SetTiendaWeb(const Value: IBizTiendaWeb); + property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb;} + + function GetContenidosActualizables: TContenidosActualizables; + procedure SetContenidosActualizables(const Value: TContenidosActualizables); + property ContenidosActualizables: TContenidosActualizables read GetContenidosActualizables write SetContenidosActualizables; + + procedure Release; + function ShowModal : Integer; + end; + + +implementation + +end. diff --git a/Source/Modulos/Tienda web/Controller/View/uIEditorTiendaWeb.pas b/Source/Modulos/Tienda web/Controller/View/uIEditorTiendaWeb.pas new file mode 100644 index 00000000..b865667d --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/View/uIEditorTiendaWeb.pas @@ -0,0 +1,45 @@ +{ +=============================================================================== + 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 uIEditorTiendaWeb; + +interface + +uses + uBizTiendaWeb; + +type + IEditorTiendaWeb = interface + ['{F156043F-C62F-44E4-A44C-82884A3193C5}'] + function GetTiendaWeb: IBizTiendaWeb; + procedure SetTiendaWeb(const Value: IBizTiendaWeb); + property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb; + + procedure Release; + function ShowModal : Integer; + end; + + +implementation + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscAddressBookController.pas b/Source/Modulos/Tienda web/Controller/uOscAddressBookController.pas new file mode 100644 index 00000000..9f25224d --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscAddressBookController.pas @@ -0,0 +1,444 @@ +{ +=============================================================================== + 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 uOscAddressBookController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + // Descomentar esto si hay detalles + // uDetallesController, + + uBizOscAddressBook, uIDataModuleTiendaWeb; + +type + IOscAddressBookController = interface(IObservador) + ['{0768DF4D-50C1-4C16-9C14-8B09DDECF1CB}'] + procedure AsignarID(AOscAddressBook: IBizOscAddressBook; IDCabecera: Integer; AEsNuevo:Boolean); + function Localizar(AOscAddressBook: IBizOscAddressBook; AIDLocal : Integer): Boolean; + +{ procedure Anadir(AOscAddressBook : IBizOscAddressBook); + function Eliminar(AOscAddressBook : IBizOscAddressBook): Boolean; overload; + function Guardar(AOscAddressBook : IBizOscAddressBook): Boolean; + procedure DescartarCambios(AOscAddressBook : IBizOscAddressBook); + function Duplicar(AOscAddressBook: IBizOscAddressBook): IBizOscAddressBook; + + function Buscar(const ID: Integer): IBizOscAddressBook; + function BuscarTodos: IBizOscAddressBook; + procedure VerTodos(AOscAddressBook: IBizOscAddressBook); + procedure Ver(AOscAddressBook: IBizOscAddressBook); + function Localizar(AOscAddressBook: IBizOscAddressBook; ADescripcion:String): Boolean; + function DarListaOscAddressBook: TStringList; + function ExtraerSeleccionados(AOscAddressBook: IBizOscAddressBook) : IBizOscAddressBook; + function ElegirOscAddressBook(AOscAddressBook: IBizOscAddressBook; AMensaje: String; AMultiSelect: Boolean): IBizOscAddressBook;} + + // Descomentar esto si hay informe + // procedure Preview(AOscAddressBook : IBizOscAddressBook); + // procedure Print(AOscAddressBook : IBizOscAddressBook); + end; + + TOscAddressBookController = class(TObservador, IOscAddressBookController) + protected + FDataModule : IDataModuleTiendaWeb; + + // Descomentar esto si hay detalles + // FDetallesController : IOscAddressBookDetallesController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscAddressBook; + + function ValidarOscAddressBook(AOscAddressBook: IBizOscAddressBook): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscAddressBook: IBizOscAddressBook; IDCabecera: Integer; AEsNuevo:Boolean); + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Anadir(AOscAddressBook : IBizOscAddressBook); + function Eliminar(AOscAddressBook : IBizOscAddressBook): Boolean; overload; + function Guardar(AOscAddressBook : IBizOscAddressBook): Boolean; + procedure DescartarCambios(AOscAddressBook : IBizOscAddressBook); + function Duplicar(AOscAddressBook: IBizOscAddressBook): IBizOscAddressBook; + + function Buscar(const ID: Integer): IBizOscAddressBook; + function BuscarTodos: IBizOscAddressBook; + procedure VerTodos(AOscAddressBook: IBizOscAddressBook); + procedure Ver(AOscAddressBook: IBizOscAddressBook); + function Localizar(AOscAddressBook: IBizOscAddressBook; AIDLocal : Integer): Boolean; + function ExtraerSeleccionados(AOscAddressBook: IBizOscAddressBook) : IBizOscAddressBook; + function ElegirOscAddressBook(AOscAddressBook: IBizOscAddressBook; AMensaje: String; AMultiSelect: Boolean): IBizOscAddressBook; + + // Descomentar esto si hay informe + // procedure Preview(AOscAddressBook : IBizOscAddressBook); + // procedure Print(AOscAddressBook : IBizOscAddressBook); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscAddressBookReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscAddressBookController } + +procedure TOscAddressBookController.Anadir(AOscAddressBook: IBizOscAddressBook); +begin + AOscAddressBook.Insert; +end; + +procedure TOscAddressBookController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscAddressBookController.AsignarID(AOscAddressBook: IBizOscAddressBook; + IDCabecera: Integer; AEsNuevo:Boolean); +begin + if not Assigned(AOscAddressBook) then + raise Exception.Create ('AddressBook no asignado'); + + if AOscAddressBook.EsNuevo then + begin + AOscAddressBook.Edit; + AOscAddressBook.customers_id := IDCabecera; + AOscAddressBook.Post; + end; +end; + +function TOscAddressBookController.BuscarTodos: IBizOscAddressBook; +begin +// Result := FDataModule.Get_ +end; + +constructor TOscAddressBookController.Create; +begin + AsignarDataModule; + + // Descomentar esto si hay detalles + // FDetallesController := TDetallesController.Create; +end; + +function TOscAddressBookController.Buscar(const ID: Integer): IBizOscAddressBook; +begin +// Result := (FDataModule as IDataModuleTiendaWeb).GetItem(ID); +end; + +function TOscAddressBookController._Vacio: IBizOscAddressBook; +begin + Result := Buscar(ID_NULO); +end; + +procedure TOscAddressBookController.DescartarCambios(AOscAddressBook: IBizOscAddressBook); +begin + if not Assigned(AOscAddressBook) then + raise Exception.Create ('AddressBook no asignado'); + + ShowHourglassCursor; + try + if (AOscAddressBook.State in dsEditModes) then + AOscAddressBook.Cancel; + + AOscAddressBook.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscAddressBookController.Destroy; +begin + FDataModule := NIL; + + // Descomentar esto si hay detalles + // FDetallesController := NIL; + + inherited; +end; + + +function TOscAddressBookController.Duplicar(AOscAddressBook: IBizOscAddressBook): IBizOscAddressBook; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscAddressBook.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscAddressBook.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 TOscAddressBookController.ValidarOscAddressBook(AOscAddressBook: IBizOscAddressBook): Boolean; +begin + Result := False; + + if not Assigned(AOscAddressBook) then + raise Exception.Create ('OscAddressBook no asignado'); + + if (AOscAddressBook.DataTable.State in dsEditModes) then + AOscAddressBook.DataTable.Post; + + // Ejemplos de validaciones + { + if (AOscAddressBook.ID_CLIENTE < 0) or + (not Assigned(AOscAddressBook.Cliente)) or + (AOscAddressBook.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscAddressBook.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscAddressBook.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscAddressBook.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscAddressBook.Edit; + try + AOscAddressBook.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscAddressBook.Post; + end;} + + Result := True; +end; + +procedure TOscAddressBookController.Ver(AOscAddressBook: IBizOscAddressBook); +{var + AEditor : IEditorOscAddressBook;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscAddressBook', IEditorOscAddressBook, AEditor); + with AEditor do + OscAddressBook := AOscAddressBook; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscAddressBookController.VerTodos(AOscAddressBook: IBizOscAddressBook); +{var + AEditor : IEditorOscAddressBook;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscAddressBook', IEditorOscAddressBook, AEditor); + with AEditor do + OscAddressBook := AOscAddressBook; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscAddressBookController.Eliminar(AOscAddressBook: IBizOscAddressBook): Boolean; +begin + Result := False; + + if not Assigned(AOscAddressBook) then + raise Exception.Create ('OscAddressBook no asignado'); + + ShowHourglassCursor; + try + if (AOscAddressBook.State in dsEditModes) then + AOscAddressBook.Cancel; + + AOscAddressBook.Delete; + AOscAddressBook.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscAddressBookController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscAddressBook : IBizOscAddressBook; + ADetalles : IBizDetallesOscAddressBook;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscAddressBook, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscAddressBook, AOscAddressBook) then + begin + AOscAddressBook.Edit; + try + AOscAddressBook.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscAddressBook.Post; + end; + end;} +end; + +function TOscAddressBookController.Guardar(AOscAddressBook: IBizOscAddressBook): Boolean; +{var + NuevoID : Integer;} +begin + Result := False; + + if ValidarOscAddressBook(AOscAddressBook) then + begin + ShowHourglassCursor; + try +{ if AOscAddressBook.EsNuevo then + NuevoID := FDataModule.GetNextID(AOscAddressBook.DataTable.LogicalName) + else + NuevoID := AOscAddressBook.ID; + + AsignarID(AOscAddressBook, NuevoID);} + AOscAddressBook.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscAddressBookController.Localizar(AOscAddressBook: IBizOscAddressBook; AIDLocal : Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscAddressBook.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_AddressBookrdx_address_book_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscAddressBookController.ExtraerSeleccionados(AOscAddressBook: IBizOscAddressBook): IBizOscAddressBook; +var + ASeleccionados : IBizOscAddressBook; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscAddressBook); + CopyDataTable(AOscAddressBook.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscAddressBookController.ElegirOscAddressBook(AOscAddressBook: IBizOscAddressBook; AMensaje: String; AMultiSelect: Boolean): IBizOscAddressBook; +{var + AEditor : IEditorElegirOscAddressBook;} +begin +{ Result := NIL; + + CreateEditor('EditorElegirOscAddressBook', IEditorElegirOscAddressBook, AEditor); + try + with AEditor do + begin + OscAddressBook := AOscAddressBook; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscAddressBookSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscAddressBookController.Preview(AOscAddressBook: IBizOscAddressBook); +// var +// AReportController : IOscAddressBookReportController; +// begin +// AReportController := TOscAddressBookReportController.Create; +// try +// AReportController.Preview(AOscAddressBook.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscAddressBookController.Print(AOscAddressBook: IBizOscAddressBook); +// var +// AReportController : IOscAddressBookReportController; +// begin +// AReportController := TOscAddressBookReportController.Create; +// try +// AReportController.Print(AOscAddressBook.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscCustomersController.pas b/Source/Modulos/Tienda web/Controller/uOscCustomersController.pas new file mode 100644 index 00000000..6f00dbdb --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscCustomersController.pas @@ -0,0 +1,479 @@ +{ +=============================================================================== + 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 uOscCustomersController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + uOscAddressBookController, + uBizOscCustomers, uIDataModuleTiendaWeb; + +type + IOscCustomersController = interface(IObservador) + ['{17765BA6-400E-4809-8548-F8EFCB94E40E}'] + function Nuevo : IBizOscCustomer; + procedure Anadir(AOscCustomers : IBizOscCustomer); + function Eliminar(AOscCustomers : IBizOscCustomer): Boolean; overload; + function Guardar(AOscCustomers : IBizOscCustomer): Boolean; + procedure DescartarCambios(AOscCustomers : IBizOscCustomer); + function Duplicar(AOscCustomers: IBizOscCustomer): IBizOscCustomer; + + function Buscar(const IDLocal: Integer): IBizOscCustomer; + function BuscarTodos: IBizOscCustomer; + procedure VerTodos(AOscCustomers: IBizOscCustomer); + procedure Ver(AOscCustomers: IBizOscCustomer); + function Localizar(AOscCustomers: IBizOscCustomer; AIDLocal: Integer): Boolean; + function DarListaOscCustomers: TStringList; + function ExtraerSeleccionados(AOscCustomers: IBizOscCustomer) : IBizOscCustomer; + function ElegirOscCustomers(AOscCustomers: IBizOscCustomer; AMensaje: String; AMultiSelect: Boolean): IBizOscCustomer; + + // Descomentar esto si hay informe + // procedure Preview(AOscCustomers : IBizOscCustomer); + // procedure Print(AOscCustomers : IBizOscCustomer); + end; + + TOscCustomersController = class(TObservador, IOscCustomersController) + protected + FDataModule : IDataModuleTiendaWeb; + FAddressBookController : IOscAddressBookController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscCustomer; + + function ValidarOscCustomers(AOscCustomers: IBizOscCustomer): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscCustomers: IBizOscCustomer; const IDNuevo: Integer); + public + constructor Create; virtual; + destructor Destroy; override; + + function Nuevo : IBizOscCustomer; + procedure Anadir(AOscCustomers : IBizOscCustomer); + function Eliminar(AOscCustomers : IBizOscCustomer): Boolean; overload; + function Guardar(AOscCustomers : IBizOscCustomer): Boolean; + procedure DescartarCambios(AOscCustomers : IBizOscCustomer); + function Duplicar(AOscCustomers: IBizOscCustomer): IBizOscCustomer; + + function Buscar(const IDLocal: Integer): IBizOscCustomer; + function BuscarTodos: IBizOscCustomer; + procedure VerTodos(AOscCustomers: IBizOscCustomer); + procedure Ver(AOscCustomers: IBizOscCustomer); + function Localizar(AOscCustomers: IBizOscCustomer; AIDLocal: Integer): Boolean; + function DarListaOscCustomers: TStringList; + function ExtraerSeleccionados(AOscCustomers: IBizOscCustomer) : IBizOscCustomer; + function ElegirOscCustomers(AOscCustomers: IBizOscCustomer; AMensaje: String; AMultiSelect: Boolean): IBizOscCustomer; + + // Descomentar esto si hay informe + // procedure Preview(AOscCustomers : IBizOscCustomer); + // procedure Print(AOscCustomers : IBizOscCustomer); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscCustomersReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscCustomersController } + +procedure TOscCustomersController.Anadir(AOscCustomers: IBizOscCustomer); +begin + AOscCustomers.Insert; +end; + +procedure TOscCustomersController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscCustomersController.AsignarID(AOscCustomers: IBizOscCustomer; + const IDNuevo: Integer); +begin + if not Assigned(AOscCustomers) then + raise Exception.Create ('OscCustomers no asignado'); + + // { Los detalles hay que comprobarlos siempre + // tanto en inserción como en modificación. } + if Assigned(AOscCustomers.AddressBook) then + FAddressBookController.AsignarID(AOscCustomers.AddressBook, IDNuevo, AOscCustomers.EsNuevo); + + if AOscCustomers.EsNuevo then + begin + AOscCustomers.Edit; + AOscCustomers.customers_id := IDNuevo; + AOscCustomers.Post; + end; +end; + +function TOscCustomersController.BuscarTodos: IBizOscCustomer; +begin + Result := FDataModule.GetOSCCustomers; +end; + +constructor TOscCustomersController.Create; +begin + AsignarDataModule; + + FAddressBookController := TOscAddressBookController.Create; +end; + +function TOscCustomersController.Buscar(const IDLocal: Integer): IBizOscCustomer; +begin + Result := FDataModule.GetOSCCustomer(IDLocal); +end; + +function TOscCustomersController._Vacio: IBizOscCustomer; +begin + Result := Buscar(ID_NULO); +end; + +function TOscCustomersController.DarListaOscCustomers: TStringList; +{var + AOscCustomers: IBizOscCustomer;} +begin +{ AOscCustomers := BuscarTodos; + AOscCustomers.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AOscCustomers.DataTable.First; + while not AOscCustomers.DataTable.EOF do + begin + Add(AOscCustomers.DESCRIPCION); + AOscCustomers.DataTable.Next; + end; + end; + finally + AOscCustomers := NIL; + end;} +end; + +procedure TOscCustomersController.DescartarCambios(AOscCustomers: IBizOscCustomer); +begin + if not Assigned(AOscCustomers) then + raise Exception.Create ('OscCustomers no asignado'); + + ShowHourglassCursor; + try + if (AOscCustomers.State in dsEditModes) then + AOscCustomers.Cancel; + + AOscCustomers.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscCustomersController.Destroy; +begin + FDataModule := NIL; + FAddressBookController := NIL; + inherited; +end; + + +function TOscCustomersController.Duplicar(AOscCustomers: IBizOscCustomer): IBizOscCustomer; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscCustomers.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscCustomers.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 TOscCustomersController.ValidarOscCustomers(AOscCustomers: IBizOscCustomer): Boolean; +begin + Result := False; + + if not Assigned(AOscCustomers) then + raise Exception.Create ('OscCustomers no asignado'); + + if (AOscCustomers.DataTable.State in dsEditModes) then + AOscCustomers.DataTable.Post; + + // Descomentar esto si hay detalles + // // Tambien hacemos post de sus tablas hija + // if (AOscCustomers.Detalles.DataTable.State in dsEditModes) then + // AOscCustomers.Detalles.DataTable.Post; + + + // Ejemplos de validaciones + { + if (AOscCustomers.ID_CLIENTE < 0) or + (not Assigned(AOscCustomers.Cliente)) or + (AOscCustomers.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscCustomers.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscCustomers.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscCustomers.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscCustomers.Edit; + try + AOscCustomers.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscCustomers.Post; + end;} + + Result := True; +end; + +procedure TOscCustomersController.Ver(AOscCustomers: IBizOscCustomer); +{var + AEditor : IEditorOscCustomers;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscCustomers', IEditorOscCustomers, AEditor); + with AEditor do + OscCustomers := AOscCustomers; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscCustomersController.VerTodos(AOscCustomers: IBizOscCustomer); +{var + AEditor : IEditorOscCustomers;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscCustomers', IEditorOscCustomers, AEditor); + with AEditor do + OscCustomers := AOscCustomers; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscCustomersController.Eliminar(AOscCustomers: IBizOscCustomer): Boolean; +begin + Result := False; + + if not Assigned(AOscCustomers) then + raise Exception.Create ('OscCustomers no asignado'); + + ShowHourglassCursor; + try + if (AOscCustomers.State in dsEditModes) then + AOscCustomers.Cancel; + + AOscCustomers.Delete; + AOscCustomers.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscCustomersController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscCustomers : IBizOscCustomer; + ADetalles : IBizDetallesOscCustomers;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscCustomers, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscCustomer, AOscCustomers) then + begin + AOscCustomers.Edit; + try + AOscCustomers.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscCustomers.Post; + end; + end;} +end; + +function TOscCustomersController.Guardar(AOscCustomers: IBizOscCustomer): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarOscCustomers(AOscCustomers) then + begin + ShowHourglassCursor; + try + if AOscCustomers.EsNuevo then + NuevoID := FDataModule.GetNextIDOSC('customers') + else + NuevoID := AOscCustomers.customers_id; + + AsignarID(AOscCustomers, NuevoID); + AOscCustomers.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscCustomersController.Localizar(AOscCustomers: IBizOscCustomer; AIDLocal: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscCustomers.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_Customersrdx_customers_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscCustomersController.Nuevo: IBizOscCustomer; +var + AOSCCustomer : IBizOscCustomer; +begin + AOSCCustomer := (FDataModule as IDataModuleTiendaWeb).NewOSCCustomer; + AOSCCustomer.DataTable.Active := True; + AOSCCustomer.Insert; + Result := AOSCCustomer; +end; + +function TOscCustomersController.ExtraerSeleccionados(AOscCustomers: IBizOscCustomer): IBizOscCustomer; +var + ASeleccionados : IBizOscCustomer; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscCustomer); + CopyDataTable(AOscCustomers.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscCustomersController.ElegirOscCustomers(AOscCustomers: IBizOscCustomer; AMensaje: String; AMultiSelect: Boolean): IBizOscCustomer; +{var + AEditor : IEditorElegirOscCustomers;} +begin + Result := NIL; + +{ CreateEditor('EditorElegirOscCustomers', IEditorElegirOscCustomers, AEditor); + try + with AEditor do + begin + OscCustomers := AOscCustomers; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscCustomersSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscCustomersController.Preview(AOscCustomers: IBizOscCustomer); +// var +// AReportController : IOscCustomersReportController; +// begin +// AReportController := TOscCustomersReportController.Create; +// try +// AReportController.Preview(AOscCustomers.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscCustomersController.Print(AOscCustomers: IBizOscCustomer); +// var +// AReportController : IOscCustomersReportController; +// begin +// AReportController := TOscCustomersReportController.Create; +// try +// AReportController.Print(AOscCustomers.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscManufacturersController.pas b/Source/Modulos/Tienda web/Controller/uOscManufacturersController.pas new file mode 100644 index 00000000..35501bf5 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscManufacturersController.pas @@ -0,0 +1,476 @@ +{ +=============================================================================== + 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 uOscManufacturersController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + uBizOscManufacturers, uIDataModuleTiendaWeb; + +type + IOscManufacturersController = interface(IObservador) + ['{62BF402A-82BD-4C51-B373-B8DDE20E43F1}'] + function Nuevo : IBizOscManufacturer; + procedure Anadir(AOscManufacturers : IBizOscManufacturer); + function Eliminar(AOscManufacturers : IBizOscManufacturer): Boolean; overload; + function Guardar(AOscManufacturers : IBizOscManufacturer): Boolean; + procedure DescartarCambios(AOscManufacturers : IBizOscManufacturer); + function Duplicar(AOscManufacturers: IBizOscManufacturer): IBizOscManufacturer; + + function Buscar(const IDLocal: Integer): IBizOscManufacturer; + function BuscarTodos: IBizOscManufacturer; + procedure VerTodos(AOscManufacturers: IBizOscManufacturer); + procedure Ver(AOscManufacturers: IBizOscManufacturer); + function Localizar(AOscManufacturers: IBizOscManufacturer; AIDLocal: Integer): Boolean; + function DarListaOscManufacturers: TStringList; + function ExtraerSeleccionados(AOscManufacturers: IBizOscManufacturer) : IBizOscManufacturer; + function ElegirOscManufacturers(AOscManufacturers: IBizOscManufacturer; AMensaje: String; AMultiSelect: Boolean): IBizOscManufacturer; + + // Descomentar esto si hay informe + // procedure Preview(AOscManufacturers : IBizOscManufacturer); + // procedure Print(AOscManufacturers : IBizOscManufacturer); + end; + + TOscManufacturersController = class(TObservador, IOscManufacturersController) + protected + FDataModule : IDataModuleTiendaWeb; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscManufacturer; + + function ValidarOscManufacturers(AOscManufacturers: IBizOscManufacturer): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscManufacturers: IBizOscManufacturer; const IDNuevo: Integer); + public + constructor Create; virtual; + destructor Destroy; override; + + function Nuevo : IBizOscManufacturer; + procedure Anadir(AOscManufacturers : IBizOscManufacturer); + function Eliminar(AOscManufacturers : IBizOscManufacturer): Boolean; overload; + function Guardar(AOscManufacturers : IBizOscManufacturer): Boolean; + procedure DescartarCambios(AOscManufacturers : IBizOscManufacturer); + function Duplicar(AOscManufacturers: IBizOscManufacturer): IBizOscManufacturer; + + function Buscar(const IDLocal: Integer): IBizOscManufacturer; + function BuscarTodos: IBizOscManufacturer; + procedure VerTodos(AOscManufacturers: IBizOscManufacturer); + procedure Ver(AOscManufacturers: IBizOscManufacturer); + function Localizar(AOscManufacturers: IBizOscManufacturer; AIDLocal: Integer): Boolean; + function DarListaOscManufacturers: TStringList; + function ExtraerSeleccionados(AOscManufacturers: IBizOscManufacturer) : IBizOscManufacturer; + function ElegirOscManufacturers(AOscManufacturers: IBizOscManufacturer; AMensaje: String; AMultiSelect: Boolean): IBizOscManufacturer; + + // Descomentar esto si hay informe + // procedure Preview(AOscManufacturers : IBizOscManufacturer); + // procedure Print(AOscManufacturers : IBizOscManufacturer); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscManufacturersReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscManufacturersController } + +procedure TOscManufacturersController.Anadir(AOscManufacturers: IBizOscManufacturer); +begin + AOscManufacturers.Insert; +end; + +procedure TOscManufacturersController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscManufacturersController.AsignarID(AOscManufacturers: IBizOscManufacturer; + const IDNuevo: Integer); +var + AContador : Integer; +begin + if not Assigned(AOscManufacturers) then + raise Exception.Create ('OscManufacturers no asignado'); + + // { Los detalles hay que comprobarlos siempre + // tanto en inserción como en modificación. } + {if Assigned(AOscManufacturers.Detalles) then + FDetallesController.AsignarID(AOscManufacturers.Detalles, IDNuevo, AOscManufacturers.EsNuevo);} + + if AOscManufacturers.EsNuevo then + begin + AOscManufacturers.Edit; + AOscManufacturers.manufacturers_id := IDNuevo; + AOscManufacturers.Post; + end; +end; + +function TOscManufacturersController.BuscarTodos: IBizOscManufacturer; +begin + Result := FDataModule.GetOSCManufacturers; +end; + +constructor TOscManufacturersController.Create; +begin + AsignarDataModule; +end; + +function TOscManufacturersController.Buscar(const IDLocal: Integer): IBizOscManufacturer; +begin + Result := FDataModule.GetOSCManufacturer(IDLocal); +end; + +function TOscManufacturersController._Vacio: IBizOscManufacturer; +begin + Result := Buscar(ID_NULO); +end; + +function TOscManufacturersController.DarListaOscManufacturers: TStringList; +{var + AOscManufacturers: IBizOscManufacturer;} +begin +{ AOscManufacturers := BuscarTodos; + AOscManufacturers.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AOscManufacturers.DataTable.First; + while not AOscManufacturers.DataTable.EOF do + begin + Add(AOscManufacturers.DESCRIPCION); + AOscManufacturers.DataTable.Next; + end; + end; + finally + AOscManufacturers := NIL; + end;} +end; + +procedure TOscManufacturersController.DescartarCambios(AOscManufacturers: IBizOscManufacturer); +begin + if not Assigned(AOscManufacturers) then + raise Exception.Create ('OscManufacturers no asignado'); + + ShowHourglassCursor; + try + if (AOscManufacturers.State in dsEditModes) then + AOscManufacturers.Cancel; + + AOscManufacturers.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscManufacturersController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + + +function TOscManufacturersController.Duplicar(AOscManufacturers: IBizOscManufacturer): IBizOscManufacturer; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscManufacturers.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscManufacturers.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 TOscManufacturersController.ValidarOscManufacturers(AOscManufacturers: IBizOscManufacturer): Boolean; +begin + Result := False; + + if not Assigned(AOscManufacturers) then + raise Exception.Create ('OscManufacturers no asignado'); + + if (AOscManufacturers.DataTable.State in dsEditModes) then + AOscManufacturers.DataTable.Post; + + // Descomentar esto si hay detalles + // // Tambien hacemos post de sus tablas hija + // if (AOscManufacturers.Detalles.DataTable.State in dsEditModes) then + // AOscManufacturers.Detalles.DataTable.Post; + + + // Ejemplos de validaciones + { + if (AOscManufacturers.ID_CLIENTE < 0) or + (not Assigned(AOscManufacturers.Cliente)) or + (AOscManufacturers.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscManufacturers.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscManufacturers.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscManufacturers.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscManufacturers.Edit; + try + AOscManufacturers.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscManufacturers.Post; + end;} + + Result := True; +end; + +procedure TOscManufacturersController.Ver(AOscManufacturers: IBizOscManufacturer); +{var + AEditor : IEditorOscManufacturers;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscManufacturers', IEditorOscManufacturers, AEditor); + with AEditor do + OscManufacturers := AOscManufacturers; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscManufacturersController.VerTodos(AOscManufacturers: IBizOscManufacturer); +{var + AEditor : IEditorOscManufacturers;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscManufacturers', IEditorOscManufacturers, AEditor); + with AEditor do + OscManufacturers := AOscManufacturers; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscManufacturersController.Eliminar(AOscManufacturers: IBizOscManufacturer): Boolean; +begin + Result := False; + + if not Assigned(AOscManufacturers) then + raise Exception.Create ('OscManufacturers no asignado'); + + ShowHourglassCursor; + try + if (AOscManufacturers.State in dsEditModes) then + AOscManufacturers.Cancel; + + AOscManufacturers.Delete; + AOscManufacturers.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscManufacturersController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscManufacturers : IBizOscManufacturer; + ADetalles : IBizDetallesOscManufacturers;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscManufacturers, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscManufacturer, AOscManufacturers) then + begin + AOscManufacturers.Edit; + try + AOscManufacturers.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscManufacturers.Post; + end; + end;} +end; + +function TOscManufacturersController.Guardar(AOscManufacturers: IBizOscManufacturer): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarOscManufacturers(AOscManufacturers) then + begin + ShowHourglassCursor; + try +{ if AOscManufacturers.EsNuevo then + NuevoID := FDataModule.GetNextID(AOscManufacturers.DataTable.LogicalName) + else} + NuevoID := AOscManufacturers.manufacturers_id; + + AsignarID(AOscManufacturers, NuevoID); + AOscManufacturers.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscManufacturersController.Localizar(AOscManufacturers: IBizOscManufacturer; AIDLocal: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscManufacturers.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_Manufacturersrdx_manufacturers_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscManufacturersController.Nuevo: IBizOscManufacturer; +var + AOSCManufacturer : IBizOscManufacturer; +begin + AOSCManufacturer := (FDataModule as IDataModuleTiendaWeb).NewOSCManufacturer; + AOSCManufacturer.DataTable.Active := True; + AOSCManufacturer.Insert; + Result := AOSCManufacturer; +end; + +function TOscManufacturersController.ExtraerSeleccionados(AOscManufacturers: IBizOscManufacturer): IBizOscManufacturer; +var + ASeleccionados : IBizOscManufacturer; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscManufacturer); + CopyDataTable(AOscManufacturers.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscManufacturersController.ElegirOscManufacturers(AOscManufacturers: IBizOscManufacturer; AMensaje: String; AMultiSelect: Boolean): IBizOscManufacturer; +{var + AEditor : IEditorElegirOscManufacturers;} +begin + Result := NIL; + +{ CreateEditor('EditorElegirOscManufacturers', IEditorElegirOscManufacturers, AEditor); + try + with AEditor do + begin + OscManufacturers := AOscManufacturers; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscManufacturersSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscManufacturersController.Preview(AOscManufacturers: IBizOscManufacturer); +// var +// AReportController : IOscManufacturersReportController; +// begin +// AReportController := TOscManufacturersReportController.Create; +// try +// AReportController.Preview(AOscManufacturers.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscManufacturersController.Print(AOscManufacturers: IBizOscManufacturer); +// var +// AReportController : IOscManufacturersReportController; +// begin +// AReportController := TOscManufacturersReportController.Create; +// try +// AReportController.Print(AOscManufacturers.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscOrderProductsController.pas b/Source/Modulos/Tienda web/Controller/uOscOrderProductsController.pas new file mode 100644 index 00000000..e63d9328 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscOrderProductsController.pas @@ -0,0 +1,475 @@ +{ +=============================================================================== + 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 uOscOrderProductsController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + // Descomentar esto si hay detalles + // uDetallesController, + + uBizOscOrderProducts, uIDataModuleTiendaWeb; + +type + IOscOrderProductsController = interface(IObservador) + ['{0768DF4D-50C1-4C16-9C14-8B09DDECF1CB}'] + procedure AsignarID(AOscOrderProducts: IBizOscOrderProducts; IDCabecera: Integer; AEsNuevo:Boolean); + function Localizar(AOscOrderProducts: IBizOscOrderProducts; AIDLocal : Integer): Boolean; + +{ procedure Anadir(AOscOrderProducts : IBizOscOrderProducts); + function Eliminar(AOscOrderProducts : IBizOscOrderProducts): Boolean; overload; + function Guardar(AOscOrderProducts : IBizOscOrderProducts): Boolean; + procedure DescartarCambios(AOscOrderProducts : IBizOscOrderProducts); + function Duplicar(AOscOrderProducts: IBizOscOrderProducts): IBizOscOrderProducts; + + function Buscar(const ID: Integer): IBizOscOrderProducts; + function BuscarTodos: IBizOscOrderProducts; + procedure VerTodos(AOscOrderProducts: IBizOscOrderProducts); + procedure Ver(AOscOrderProducts: IBizOscOrderProducts); + function Localizar(AOscOrderProducts: IBizOscOrderProducts; ADescripcion:String): Boolean; + function DarListaOscOrderProducts: TStringList; + function ExtraerSeleccionados(AOscOrderProducts: IBizOscOrderProducts) : IBizOscOrderProducts; + function ElegirOscOrderProducts(AOscOrderProducts: IBizOscOrderProducts; AMensaje: String; AMultiSelect: Boolean): IBizOscOrderProducts;} + + // Descomentar esto si hay informe + // procedure Preview(AOscOrderProducts : IBizOscOrderProducts); + // procedure Print(AOscOrderProducts : IBizOscOrderProducts); + end; + + TOscOrderProductsController = class(TObservador, IOscOrderProductsController) + protected + FDataModule : IDataModuleTiendaWeb; + + // Descomentar esto si hay detalles + // FDetallesController : IOscOrderProductsDetallesController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscOrderProducts; + + function ValidarOscOrderProducts(AOscOrderProducts: IBizOscOrderProducts): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscOrderProducts: IBizOscOrderProducts; IDCabecera: Integer; AEsNuevo:Boolean); + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Anadir(AOscOrderProducts : IBizOscOrderProducts); + function Eliminar(AOscOrderProducts : IBizOscOrderProducts): Boolean; overload; + function Guardar(AOscOrderProducts : IBizOscOrderProducts): Boolean; + procedure DescartarCambios(AOscOrderProducts : IBizOscOrderProducts); + function Duplicar(AOscOrderProducts: IBizOscOrderProducts): IBizOscOrderProducts; + + function Buscar(const ID: Integer): IBizOscOrderProducts; + function BuscarTodos: IBizOscOrderProducts; + procedure VerTodos(AOscOrderProducts: IBizOscOrderProducts); + procedure Ver(AOscOrderProducts: IBizOscOrderProducts); + function Localizar(AOscOrderProducts: IBizOscOrderProducts; AIDLocal : Integer): Boolean; + function DarListaOscOrderProducts: TStringList; + function ExtraerSeleccionados(AOscOrderProducts: IBizOscOrderProducts) : IBizOscOrderProducts; + function ElegirOscOrderProducts(AOscOrderProducts: IBizOscOrderProducts; AMensaje: String; AMultiSelect: Boolean): IBizOscOrderProducts; + + // Descomentar esto si hay informe + // procedure Preview(AOscOrderProducts : IBizOscOrderProducts); + // procedure Print(AOscOrderProducts : IBizOscOrderProducts); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscOrderProductsReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscOrderProductsController } + +procedure TOscOrderProductsController.Anadir(AOscOrderProducts: IBizOscOrderProducts); +begin + AOscOrderProducts.Insert; +end; + +procedure TOscOrderProductsController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscOrderProductsController.AsignarID(AOscOrderProducts: IBizOscOrderProducts; + IDCabecera: Integer; AEsNuevo:Boolean); +var + AContador : Integer; +begin + if not Assigned(AOscOrderProducts) then + raise Exception.Create ('OrderProducts no asignado'); + + if AOscOrderProducts.EsNuevo then + begin + AOscOrderProducts.Edit; + AOscOrderProducts.orders_id := IDCabecera; + AOscOrderProducts.Post; + end; +end; + +function TOscOrderProductsController.BuscarTodos: IBizOscOrderProducts; +begin +// Result := FDataModule.Get_ +end; + +constructor TOscOrderProductsController.Create; +begin + AsignarDataModule; + + // Descomentar esto si hay detalles + // FDetallesController := TDetallesController.Create; +end; + +function TOscOrderProductsController.Buscar(const ID: Integer): IBizOscOrderProducts; +begin +// Result := (FDataModule as IDataModuleTiendaWeb).GetItem(ID); +end; + +function TOscOrderProductsController._Vacio: IBizOscOrderProducts; +begin + Result := Buscar(ID_NULO); +end; + +function TOscOrderProductsController.DarListaOscOrderProducts: TStringList; +var + AOscOrderProducts: IBizOscOrderProducts; +begin +{ AOscOrderProducts := BuscarTodos; + AOscOrderProducts.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AOscOrderProducts.DataTable.First; + while not AOscOrderProducts.DataTable.EOF do + begin + Add(AOscOrderProducts.DESCRIPCION); + AOscOrderProducts.DataTable.Next; + end; + end; + finally + AOscOrderProducts := NIL; + end;} +end; + +procedure TOscOrderProductsController.DescartarCambios(AOscOrderProducts: IBizOscOrderProducts); +begin + if not Assigned(AOscOrderProducts) then + raise Exception.Create ('OrderProducts no asignado'); + + ShowHourglassCursor; + try + if (AOscOrderProducts.State in dsEditModes) then + AOscOrderProducts.Cancel; + + AOscOrderProducts.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscOrderProductsController.Destroy; +begin + FDataModule := NIL; + + // Descomentar esto si hay detalles + // FDetallesController := NIL; + + inherited; +end; + + +function TOscOrderProductsController.Duplicar(AOscOrderProducts: IBizOscOrderProducts): IBizOscOrderProducts; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscOrderProducts.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscOrderProducts.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 TOscOrderProductsController.ValidarOscOrderProducts(AOscOrderProducts: IBizOscOrderProducts): Boolean; +begin + Result := False; + + if not Assigned(AOscOrderProducts) then + raise Exception.Create ('OscOrderProducts no asignado'); + + if (AOscOrderProducts.DataTable.State in dsEditModes) then + AOscOrderProducts.DataTable.Post; + + // Descomentar esto si hay detalles + // // Tambien hacemos post de sus tablas hija + // if (AOscOrderProducts.Detalles.DataTable.State in dsEditModes) then + // AOscOrderProducts.Detalles.DataTable.Post; + + + // Ejemplos de validaciones + { + if (AOscOrderProducts.ID_CLIENTE < 0) or + (not Assigned(AOscOrderProducts.Cliente)) or + (AOscOrderProducts.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscOrderProducts.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscOrderProducts.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscOrderProducts.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscOrderProducts.Edit; + try + AOscOrderProducts.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscOrderProducts.Post; + end;} + + Result := True; +end; + +procedure TOscOrderProductsController.Ver(AOscOrderProducts: IBizOscOrderProducts); +{var + AEditor : IEditorOscOrderProducts;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscOrderProducts', IEditorOscOrderProducts, AEditor); + with AEditor do + OscOrderProducts := AOscOrderProducts; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscOrderProductsController.VerTodos(AOscOrderProducts: IBizOscOrderProducts); +{var + AEditor : IEditorOscOrderProducts;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscOrderProducts', IEditorOscOrderProducts, AEditor); + with AEditor do + OscOrderProducts := AOscOrderProducts; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscOrderProductsController.Eliminar(AOscOrderProducts: IBizOscOrderProducts): Boolean; +begin + Result := False; + + if not Assigned(AOscOrderProducts) then + raise Exception.Create ('OscOrderProducts no asignado'); + + ShowHourglassCursor; + try + if (AOscOrderProducts.State in dsEditModes) then + AOscOrderProducts.Cancel; + + AOscOrderProducts.Delete; + AOscOrderProducts.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscOrderProductsController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscOrderProducts : IBizOscOrderProducts; + ADetalles : IBizDetallesOscOrderProducts;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscOrderProducts, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscOrderProducts, AOscOrderProducts) then + begin + AOscOrderProducts.Edit; + try + AOscOrderProducts.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscOrderProducts.Post; + end; + end;} +end; + +function TOscOrderProductsController.Guardar(AOscOrderProducts: IBizOscOrderProducts): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarOscOrderProducts(AOscOrderProducts) then + begin + ShowHourglassCursor; + try +{ if AOscOrderProducts.EsNuevo then + NuevoID := FDataModule.GetNextID(AOscOrderProducts.DataTable.LogicalName) + else + NuevoID := AOscOrderProducts.ID; + + AsignarID(AOscOrderProducts, NuevoID);} + AOscOrderProducts.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscOrderProductsController.Localizar(AOscOrderProducts: IBizOscOrderProducts; AIDLocal : Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscOrderProducts.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_Orders_productsrdx_products_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscOrderProductsController.ExtraerSeleccionados(AOscOrderProducts: IBizOscOrderProducts): IBizOscOrderProducts; +var + ASeleccionados : IBizOscOrderProducts; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscOrderProducts); + CopyDataTable(AOscOrderProducts.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscOrderProductsController.ElegirOscOrderProducts(AOscOrderProducts: IBizOscOrderProducts; AMensaje: String; AMultiSelect: Boolean): IBizOscOrderProducts; +{var + AEditor : IEditorElegirOscOrderProducts;} +begin +{ Result := NIL; + + CreateEditor('EditorElegirOscOrderProducts', IEditorElegirOscOrderProducts, AEditor); + try + with AEditor do + begin + OscOrderProducts := AOscOrderProducts; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscOrderProductsSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscOrderProductsController.Preview(AOscOrderProducts: IBizOscOrderProducts); +// var +// AReportController : IOscOrderProductsReportController; +// begin +// AReportController := TOscOrderProductsReportController.Create; +// try +// AReportController.Preview(AOscOrderProducts.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscOrderProductsController.Print(AOscOrderProducts: IBizOscOrderProducts); +// var +// AReportController : IOscOrderProductsReportController; +// begin +// AReportController := TOscOrderProductsReportController.Create; +// try +// AReportController.Print(AOscOrderProducts.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscOrdersController.pas b/Source/Modulos/Tienda web/Controller/uOscOrdersController.pas new file mode 100644 index 00000000..338739e5 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscOrdersController.pas @@ -0,0 +1,447 @@ +{ +=============================================================================== + 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 uOscOrdersController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + uOscOrderProductsController, + uBizOscOrders, uIDataModuleTiendaWeb; + +type + IOscOrdersController = interface(IObservador) + ['{17765BA6-400E-4809-8548-F8EFCB94E40E}'] + //function Nuevo : IBizOscOrder; + //procedure Anadir(AOscOrders : IBizOscOrder); + function Eliminar(AOscOrders : IBizOscOrder): Boolean; overload; + function Guardar(AOscOrders : IBizOscOrder): Boolean; + procedure DescartarCambios(AOscOrders : IBizOscOrder); + //function Duplicar(AOscOrders: IBizOscOrder): IBizOscOrder; + + function Buscar(const IDLocal: Integer): IBizOscOrder; + function BuscarTodos: IBizOscOrder; + procedure VerTodos(AOscOrders: IBizOscOrder); + procedure Ver(AOscOrders: IBizOscOrder); + function Localizar(AOscOrders: IBizOscOrder; AIDLocal: Integer): Boolean; + function ExtraerSeleccionados(AOscOrders: IBizOscOrder) : IBizOscOrder; + function ElegirOscOrders(AOscOrders: IBizOscOrder; AMensaje: String; AMultiSelect: Boolean): IBizOscOrder; + + // Descomentar esto si hay informe + // procedure Preview(AOscOrders : IBizOscOrder); + // procedure Print(AOscOrders : IBizOscOrder); + end; + + TOscOrdersController = class(TObservador, IOscOrdersController) + protected + FDataModule : IDataModuleTiendaWeb; + FOrderProductsController : IOscOrderProductsController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscOrder; + + function ValidarOscOrders(AOscOrders: IBizOscOrder): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscOrders: IBizOscOrder; const IDNuevo: Integer); + public + constructor Create; virtual; + destructor Destroy; override; + + //function Nuevo : IBizOscOrder; + //procedure Anadir(AOscOrders : IBizOscOrder); + function Eliminar(AOscOrders : IBizOscOrder): Boolean; overload; + function Guardar(AOscOrders : IBizOscOrder): Boolean; + procedure DescartarCambios(AOscOrders : IBizOscOrder); + //function Duplicar(AOscOrders: IBizOscOrder): IBizOscOrder; + + function Buscar(const IDLocal: Integer): IBizOscOrder; + function BuscarTodos: IBizOscOrder; + procedure VerTodos(AOscOrders: IBizOscOrder); + procedure Ver(AOscOrders: IBizOscOrder); + function Localizar(AOscOrders: IBizOscOrder; AIDLocal: Integer): Boolean; + function ExtraerSeleccionados(AOscOrders: IBizOscOrder) : IBizOscOrder; + function ElegirOscOrders(AOscOrders: IBizOscOrder; AMensaje: String; AMultiSelect: Boolean): IBizOscOrder; + + // Descomentar esto si hay informe + // procedure Preview(AOscOrders : IBizOscOrder); + // procedure Print(AOscOrders : IBizOscOrder); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscOrdersReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscOrdersController } + +{procedure TOscOrdersController.Anadir(AOscOrders: IBizOscOrder); +begin + AOscOrders.Insert; +end;} + +procedure TOscOrdersController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscOrdersController.AsignarID(AOscOrders: IBizOscOrder; + const IDNuevo: Integer); +var + AContador : Integer; +begin + if not Assigned(AOscOrders) then + raise Exception.Create ('OscOrders no asignado'); + + // { Los detalles hay que comprobarlos siempre + // tanto en inserción como en modificación. } + if Assigned(AOscOrders.OrderProducts) then + FOrderProductsController.AsignarID(AOscOrders.OrderProducts, IDNuevo, AOscOrders.EsNuevo); + + if AOscOrders.EsNuevo then + begin + AOscOrders.Edit; + AOscOrders.customers_id := IDNuevo; + AOscOrders.Post; + end; +end; + +function TOscOrdersController.BuscarTodos: IBizOscOrder; +begin + Result := FDataModule.GetOSCOrders; +end; + +constructor TOscOrdersController.Create; +begin + AsignarDataModule; + + FOrderProductsController := TOscOrderProductsController.Create; +end; + +function TOscOrdersController.Buscar(const IDLocal: Integer): IBizOscOrder; +begin + Result := FDataModule.GetOSCOrder(IDLocal); +end; + +function TOscOrdersController._Vacio: IBizOscOrder; +begin + Result := Buscar(ID_NULO); +end; + +procedure TOscOrdersController.DescartarCambios(AOscOrders: IBizOscOrder); +begin + if not Assigned(AOscOrders) then + raise Exception.Create ('OscOrders no asignado'); + + ShowHourglassCursor; + try + if (AOscOrders.State in dsEditModes) then + AOscOrders.Cancel; + + AOscOrders.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscOrdersController.Destroy; +begin + FDataModule := NIL; + FOrderProductsController := NIL; + inherited; +end; + + +{function TOscOrdersController.Duplicar(AOscOrders: IBizOscOrder): IBizOscOrder; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscOrders.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscOrders.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 TOscOrdersController.ValidarOscOrders(AOscOrders: IBizOscOrder): Boolean; +begin + Result := False; + + if not Assigned(AOscOrders) then + raise Exception.Create ('OscOrders no asignado'); + + if (AOscOrders.DataTable.State in dsEditModes) then + AOscOrders.DataTable.Post; + + // Descomentar esto si hay detalles + // // Tambien hacemos post de sus tablas hija + // if (AOscOrders.Detalles.DataTable.State in dsEditModes) then + // AOscOrders.Detalles.DataTable.Post; + + + // Ejemplos de validaciones + { + if (AOscOrders.ID_CLIENTE < 0) or + (not Assigned(AOscOrders.Cliente)) or + (AOscOrders.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscOrders.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscOrders.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscOrders.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscOrders.Edit; + try + AOscOrders.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscOrders.Post; + end;} + + Result := True; +end; + +procedure TOscOrdersController.Ver(AOscOrders: IBizOscOrder); +{var + AEditor : IEditorOscOrders;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscOrders', IEditorOscOrders, AEditor); + with AEditor do + OscOrders := AOscOrders; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscOrdersController.VerTodos(AOscOrders: IBizOscOrder); +{var + AEditor : IEditorOscOrders;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscOrders', IEditorOscOrders, AEditor); + with AEditor do + OscOrders := AOscOrders; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscOrdersController.Eliminar(AOscOrders: IBizOscOrder): Boolean; +begin + Result := False; + + if not Assigned(AOscOrders) then + raise Exception.Create ('OscOrders no asignado'); + + ShowHourglassCursor; + try + if (AOscOrders.State in dsEditModes) then + AOscOrders.Cancel; + + AOscOrders.Delete; + AOscOrders.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscOrdersController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscOrders : IBizOscOrder; + ADetalles : IBizDetallesOscOrders;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscOrders, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscOrder, AOscOrders) then + begin + AOscOrders.Edit; + try + AOscOrders.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscOrders.Post; + end; + end;} +end; + +function TOscOrdersController.Guardar(AOscOrders: IBizOscOrder): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarOscOrders(AOscOrders) then + begin + ShowHourglassCursor; + try + if AOscOrders.EsNuevo then + NuevoID := FDataModule.GetNextIDOSC('customers') + else + NuevoID := AOscOrders.customers_id; + + AsignarID(AOscOrders, NuevoID); + AOscOrders.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscOrdersController.Localizar(AOscOrders: IBizOscOrder; AIDLocal: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscOrders.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_Ordersrdx_orders_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscOrdersController.ExtraerSeleccionados(AOscOrders: IBizOscOrder): IBizOscOrder; +var + ASeleccionados : IBizOscOrder; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscOrder); + CopyDataTable(AOscOrders.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscOrdersController.ElegirOscOrders(AOscOrders: IBizOscOrder; AMensaje: String; AMultiSelect: Boolean): IBizOscOrder; +{var + AEditor : IEditorElegirOscOrders;} +begin + Result := NIL; + +{ CreateEditor('EditorElegirOscOrders', IEditorElegirOscOrders, AEditor); + try + with AEditor do + begin + OscOrders := AOscOrders; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscOrdersSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscOrdersController.Preview(AOscOrders: IBizOscOrder); +// var +// AReportController : IOscOrdersReportController; +// begin +// AReportController := TOscOrdersReportController.Create; +// try +// AReportController.Preview(AOscOrders.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscOrdersController.Print(AOscOrders: IBizOscOrder); +// var +// AReportController : IOscOrdersReportController; +// begin +// AReportController := TOscOrdersReportController.Create; +// try +// AReportController.Print(AOscOrders.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uOscProductsController.pas b/Source/Modulos/Tienda web/Controller/uOscProductsController.pas new file mode 100644 index 00000000..066bc637 --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uOscProductsController.pas @@ -0,0 +1,476 @@ +{ +=============================================================================== + 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 uOscProductsController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + + uBizOscProducts, uIDataModuleTiendaWeb; + +type + IOscProductsController = interface(IObservador) + ['{D22CB0C3-D0E2-4B34-B1B2-AE27815680C1}'] + function Nuevo : IBizOscProduct; + procedure Anadir(AOscProducts : IBizOscProduct); + function Eliminar(AOscProducts : IBizOscProduct): Boolean; overload; + function Guardar(AOscProducts : IBizOscProduct): Boolean; + procedure DescartarCambios(AOscProducts : IBizOscProduct); + function Duplicar(AOscProducts: IBizOscProduct): IBizOscProduct; + + function Buscar(const IDLocal: Integer): IBizOscProduct; + function BuscarTodos: IBizOscProduct; + procedure VerTodos(AOscProducts: IBizOscProduct); + procedure Ver(AOscProducts: IBizOscProduct); + function Localizar(AOscProducts: IBizOscProduct; AIDLocal: Integer): Boolean; + function DarListaOscProducts: TStringList; + function ExtraerSeleccionados(AOscProducts: IBizOscProduct) : IBizOscProduct; + function ElegirOscProducts(AOscProducts: IBizOscProduct; AMensaje: String; AMultiSelect: Boolean): IBizOscProduct; + + // Descomentar esto si hay informe + // procedure Preview(AOscProducts : IBizOscProduct); + // procedure Print(AOscProducts : IBizOscProduct); + end; + + TOscProductsController = class(TObservador, IOscProductsController) + protected + FDataModule : IDataModuleTiendaWeb; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizOscProduct; + + function ValidarOscProducts(AOscProducts: IBizOscProduct): Boolean; + procedure AsignarDataModule; + procedure AsignarID(AOscProducts: IBizOscProduct; const IDNuevo: Integer); + public + constructor Create; virtual; + destructor Destroy; override; + + function Nuevo : IBizOscProduct; + procedure Anadir(AOscProducts : IBizOscProduct); + function Eliminar(AOscProducts : IBizOscProduct): Boolean; overload; + function Guardar(AOscProducts : IBizOscProduct): Boolean; + procedure DescartarCambios(AOscProducts : IBizOscProduct); + function Duplicar(AOscProducts: IBizOscProduct): IBizOscProduct; + + function Buscar(const IDLocal: Integer): IBizOscProduct; + function BuscarTodos: IBizOscProduct; + procedure VerTodos(AOscProducts: IBizOscProduct); + procedure Ver(AOscProducts: IBizOscProduct); + function Localizar(AOscProducts: IBizOscProduct; AIDLocal: Integer): Boolean; + function DarListaOscProducts: TStringList; + function ExtraerSeleccionados(AOscProducts: IBizOscProduct) : IBizOscProduct; + function ElegirOscProducts(AOscProducts: IBizOscProduct; AMensaje: String; AMultiSelect: Boolean): IBizOscProduct; + + // Descomentar esto si hay informe + // procedure Preview(AOscProducts : IBizOscProduct); + // procedure Print(AOscProducts : IBizOscProduct); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + // Descomentar esto si hay informe + // uOscProductsReportController, + + schTiendaWebClient_Intf, uDataModuleTiendaWeb; + +{ TOscProductsController } + +procedure TOscProductsController.Anadir(AOscProducts: IBizOscProduct); +begin + AOscProducts.Insert; +end; + +procedure TOscProductsController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TOscProductsController.AsignarID(AOscProducts: IBizOscProduct; + const IDNuevo: Integer); +var + AContador : Integer; +begin + if not Assigned(AOscProducts) then + raise Exception.Create ('OscProducts no asignado'); + + // { Los detalles hay que comprobarlos siempre + // tanto en inserción como en modificación. } + {if Assigned(AOscProducts.Detalles) then + FDetallesController.AsignarID(AOscProducts.Detalles, IDNuevo, AOscProducts.EsNuevo);} + + if AOscProducts.EsNuevo then + begin + AOscProducts.Edit; + AOscProducts.manufacturers_id := IDNuevo; + AOscProducts.Post; + end; +end; + +function TOscProductsController.BuscarTodos: IBizOscProduct; +begin + Result := FDataModule.GetOSCProducts; +end; + +constructor TOscProductsController.Create; +begin + AsignarDataModule; +end; + +function TOscProductsController.Buscar(const IDLocal: Integer): IBizOscProduct; +begin + Result := FDataModule.GetOSCProduct(IDLocal); +end; + +function TOscProductsController._Vacio: IBizOscProduct; +begin + Result := Buscar(ID_NULO); +end; + +function TOscProductsController.DarListaOscProducts: TStringList; +{var + AOscProducts: IBizOscProduct;} +begin +{ AOscProducts := BuscarTodos; + AOscProducts.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AOscProducts.DataTable.First; + while not AOscProducts.DataTable.EOF do + begin + Add(AOscProducts.DESCRIPCION); + AOscProducts.DataTable.Next; + end; + end; + finally + AOscProducts := NIL; + end;} +end; + +procedure TOscProductsController.DescartarCambios(AOscProducts: IBizOscProduct); +begin + if not Assigned(AOscProducts) then + raise Exception.Create ('OscProducts no asignado'); + + ShowHourglassCursor; + try + if (AOscProducts.State in dsEditModes) then + AOscProducts.Cancel; + + AOscProducts.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TOscProductsController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + + +function TOscProductsController.Duplicar(AOscProducts: IBizOscProduct): IBizOscProduct; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AOscProducts.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // DuplicarRegistros(AOscProducts.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 TOscProductsController.ValidarOscProducts(AOscProducts: IBizOscProduct): Boolean; +begin + Result := False; + + if not Assigned(AOscProducts) then + raise Exception.Create ('OscProducts no asignado'); + + if (AOscProducts.DataTable.State in dsEditModes) then + AOscProducts.DataTable.Post; + + // Descomentar esto si hay detalles + // // Tambien hacemos post de sus tablas hija + // if (AOscProducts.Detalles.DataTable.State in dsEditModes) then + // AOscProducts.Detalles.DataTable.Post; + + + // Ejemplos de validaciones + { + if (AOscProducts.ID_CLIENTE < 0) or + (not Assigned(AOscProducts.Cliente)) or + (AOscProducts.Cliente.IsEmpty) then + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AOscProducts.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if Length(AOscProducts.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AOscProducts.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripción para esta forma de pago.'); + } + + + { Asegurarse de valores en campos "automáticos" tanto + en MODIFICACIÓN como en INSERCIÓN. } +{ AOscProducts.Edit; + try + AOscProducts.USUARIO := dmUsuarios.LoginInfo.Usuario; + Result := True; + finally + AOscProducts.Post; + end;} + + Result := True; +end; + +procedure TOscProductsController.Ver(AOscProducts: IBizOscProduct); +{var + AEditor : IEditorOscProducts;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscProducts', IEditorOscProducts, AEditor); + with AEditor do + OscProducts := AOscProducts; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +procedure TOscProductsController.VerTodos(AOscProducts: IBizOscProduct); +{var + AEditor : IEditorOscProducts;} +begin +{ AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorOscProducts', IEditorOscProducts, AEditor); + with AEditor do + OscProducts := AOscProducts; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end;} +end; + +function TOscProductsController.Eliminar(AOscProducts: IBizOscProduct): Boolean; +begin + Result := False; + + if not Assigned(AOscProducts) then + raise Exception.Create ('OscProducts no asignado'); + + ShowHourglassCursor; + try + if (AOscProducts.State in dsEditModes) then + AOscProducts.Cancel; + + AOscProducts.Delete; + AOscProducts.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TOscProductsController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +// Descomentar si hubiera detalles +{var + AOscProducts : IBizOscProduct; + ADetalles : IBizDetallesOscProducts;} +begin + inherited; + + // Descomentar si hubiera detalles + {if Supports(ADataTable, IBizDetallesOscProducts, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizOscProduct, AOscProducts) then + begin + AOscProducts.Edit; + try + AOscProducts.IMPORTE_TOTAL := FDetallesController.DarTotalImporteTotal(ADetalles); + finally + AOscProducts.Post; + end; + end;} +end; + +function TOscProductsController.Guardar(AOscProducts: IBizOscProduct): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarOscProducts(AOscProducts) then + begin + ShowHourglassCursor; + try +{ if AOscProducts.EsNuevo then + NuevoID := FDataModule.GetNextID(AOscProducts.DataTable.LogicalName) + else} + NuevoID := AOscProducts.manufacturers_id; + + AsignarID(AOscProducts, NuevoID); + AOscProducts.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TOscProductsController.Localizar(AOscProducts: IBizOscProduct; AIDLocal: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AOscProducts.DataTable do + begin + DisableControls; + First; + if not Locate(fld_osc_Productsrdx_products_id_local, AIDLocal, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TOscProductsController.Nuevo: IBizOscProduct; +var + AOSCProduct : IBizOscProduct; +begin + AOSCProduct := (FDataModule as IDataModuleTiendaWeb).NewOSCProduct; + AOSCProduct.DataTable.Active := True; + AOSCProduct.Insert; + Result := AOSCProduct; +end; + +function TOscProductsController.ExtraerSeleccionados(AOscProducts: IBizOscProduct): IBizOscProduct; +var + ASeleccionados : IBizOscProduct; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizOscProduct); + CopyDataTable(AOscProducts.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TOscProductsController.ElegirOscProducts(AOscProducts: IBizOscProduct; AMensaje: String; AMultiSelect: Boolean): IBizOscProduct; +{var + AEditor : IEditorElegirOscProducts;} +begin + Result := NIL; + +{ CreateEditor('EditorElegirOscProducts', IEditorElegirOscProducts, AEditor); + try + with AEditor do + begin + OscProducts := AOscProducts; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := OscProductsSeleccionados; + Release; + end; + finally + AEditor := NIL; + end;} +end; + +// Descomentar esto si hay informe +// procedure TOscProductsController.Preview(AOscProducts: IBizOscProduct); +// var +// AReportController : IOscProductsReportController; +// begin +// AReportController := TOscProductsReportController.Create; +// try +// AReportController.Preview(AOscProducts.ID); +// finally +// AReportController := NIL; +// end; +// end; + +// Descomentar esto si hay informe +// procedure TOscProductsController.Print(AOscProducts: IBizOscProduct); +// var +// AReportController : IOscProductsReportController; +// begin +// AReportController := TOscProductsReportController.Create; +// try +// AReportController.Print(AOscProducts.ID); +// finally +// AReportController := NIL; +// end; +// end; + +end. diff --git a/Source/Modulos/Tienda web/Controller/uTiendaWebController.pas b/Source/Modulos/Tienda web/Controller/uTiendaWebController.pas new file mode 100644 index 00000000..bcaf829b --- /dev/null +++ b/Source/Modulos/Tienda web/Controller/uTiendaWebController.pas @@ -0,0 +1,523 @@ +{ +=============================================================================== + 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 uTiendaWebController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uBizTiendaWeb, uIDataModuleTiendaWeb, + uBizContactos, uBizDireccionesContacto; + +type + + ITiendaWebController = interface(IObservador) + ['{559E2D92-0C7F-46C6-96C4-1C3794B79A57}'] + function Guardar(ATiendaWeb : IBizTiendaWeb): Boolean; + procedure DescartarCambios(ATiendaWeb : IBizTiendaWeb); + function Buscar(const ID_Empresa: Integer): IBizTiendaWeb; + function Ver(ATiendaWeb: IBizTiendaWeb) : Integer; + + function HayConexionConTienda(ATiendaWeb : IBizTiendaWeb): Boolean; overload; + function HayConexionConTienda(const ABDServer : String; + const ABDName : String; const ABDUser : String; + const ABDPass : String): Boolean; overload; + + function ActualizarTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + function DescargarPedidos(ATiendaWeb : IBizTiendaWeb): Boolean; + end; + + TTiendaWebController = class(TObservador, ITiendaWebController) + protected + FDataModule : IDataModuleTiendaWeb; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function _Vacio : IBizTiendaWeb; + + function ValidarTiendaWeb(ATiendaWeb: IBizTiendaWeb): Boolean; + procedure AsignarDataModule; + procedure AsignarID(ATiendaWeb: IBizTiendaWeb; const IDNuevo: Integer); + + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Anadir(ATiendaWeb : IBizTiendaWeb); + function Eliminar(ATiendaWeb : IBizTiendaWeb): Boolean; overload; + function Guardar(ATiendaWeb : IBizTiendaWeb): Boolean; + procedure DescartarCambios(ATiendaWeb : IBizTiendaWeb); + + function Buscar(const ID_Empresa: Integer): IBizTiendaWeb; + function Ver(ATiendaWeb: IBizTiendaWeb) : Integer; + + function HayConexionConTienda(ATiendaWeb : IBizTiendaWeb): Boolean; overload; + function HayConexionConTienda(const ABDServer : String; + const ABDName : String; const ABDUser : String; + const ABDPass : String): Boolean; overload; + + function ActualizarTienda(ATiendaWeb : IBizTiendaWeb): Boolean; + function DescargarPedidos(ATiendaWeb : IBizTiendaWeb): Boolean; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, schTiendaWebClient_Intf, + uIEditorTiendaWeb, uDataModuleTiendaWeb, uDialogUtils, SqlExpr, JSDialog, + + uClientesController, uProveedoresController, uActualizarClientesUtils, + uOscCustomersController, uOscAddressBookController, + uBizOscCustomers, uBizOscAddressBook, uIEditorActualizarTiendaWeb, + uActualizarProveedoresUtils, uActualizarArticulosUtils, Dialogs, Forms, + uActualizarPedidosUtils; + +{ TTiendaWebController } + +function TTiendaWebController.ActualizarTienda( + ATiendaWeb: IBizTiendaWeb): Boolean; +var + AEditor : IEditorActualizarTiendaWeb; + Respuesta : Integer; + AContenidosAct : TContenidosActualizables; + ADlg : TJSDialog; +begin + Result := False; + + if not Assigned(ATiendaWeb) then + raise Exception.Create('TiendaWeb no asignada'); + + ATiendaWeb.DataTable.Active := True; + if (ATiendaWeb.TIENDA_ACTIVA <> 1) then + begin + if (ShowConfirmMessage('La tienda no está activada', 'No se ha activado o configurado el acceso a la tienda.' + + #13 + '¿Desea hacerlo ahora?') = IDYES) then + begin + if IsPositiveResult(Self.Ver(ATiendaWeb)) then + Self.ActualizarTienda(ATiendaWeb); + end; + Exit; + end; + + if not Self.HayConexionConTienda(ATiendaWeb) then + begin + ShowErrorMessage('No hay conexión con la tienda web', 'Se ha producido un error al intentar realizar la conexión con la tienda web.' + + #10#13 + 'Inténtelo de nuevo pasados unos minutos o revise los datos de conexión a la tienda.'); + Exit; + end; + + AContenidosAct := [caClientes, caProveedores]; + + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorActualizarTiendaWeb', IEditorActualizarTiendaWeb, AEditor); + with AEditor do + ContenidosActualizables := AContenidosAct; + finally + HideHourglassCursor; + end; + + Respuesta := mrNone; + AContenidosAct := []; + if Assigned(AEditor) then + try + Respuesta := AEditor.ShowModal; + AContenidosAct := AEditor.ContenidosActualizables; + AEditor.Release; + finally + AEditor := NIL; + end; + + if IsPositiveResult(Respuesta) then + begin + try + ADlg := TJSDialog.Create(nil); + ShowHourglassCursor; + try + with ADlg do + begin + Title := 'Actualización de la tienda web'; + DialogOptions := [doProgressBarMarquee, doTopMost]; + ButtonBar.Buttons := []; + end; + + if (caClientes in AContenidosAct) then + begin + ADlg.Instruction.Text := 'Actualizando clientes...'; + ADlg.Execute; + Application.ProcessMessages; + + Result := uActualizarClientesUtils.ActualizarClientesTienda(ATiendaWeb); + if not Result then + Exit; + end; + + if (caProveedores in AContenidosAct) then + begin + ADlg.Close; + ADlg.Instruction.Text := 'Actualizando proveedores...'; + ADlg.Execute; + Application.ProcessMessages; + + Result := uActualizarProveedoresUtils.ActualizarProveedoresTienda(ATiendaWeb); + + // Actualizar los artículos de los proveedores + if Result then + begin + ADlg.Close; + ADlg.Instruction.Text := 'Actualizando artículos...'; + ADlg.Execute; + Application.ProcessMessages; + + Result := uActualizarArticulosUtils.ActualizarArticulosTienda(ATiendaWeb); + end; + + if not Result then + Exit; + end; + Application.ProcessMessages; + + ATiendaWeb.Edit; + ATiendaWeb.ULTIMA_ACTUALIZACION := Now; + Self.Guardar(ATiendaWeb); + + ADlg.Close; + + if Result then + ShowInfoMessage('Actualización de tienda web realizada', 'Se ha actualizado correctamente la información de la tienda web.'); + finally + HideHourglassCursor; + ADlg.Close; + ADlg.Free; + ADlg := NIL; + Application.ProcessMessages; + end; + except + on E: Exception do + begin + // Cannot connect to mySQL server on localhost (10061) + if (Pos('(10061)', E.Message) > 0) then + begin + ShowErrorMessage('No hay conexión con la tienda web', 'Se ha producido un error al intentar realizar la conexión con la tienda web.' + + #10#13 + 'Inténtelo de nuevo pasados unos minutos o revise los datos de conexión a la tienda.', E); + end + else + ShowErrorMessage('Error durante la actualización de la tienda web', 'Se ha producido un error al intentar actualizar los contenidos de la tienda web con los datos de FactuGES.', E); + end; + end; // try ... except + end; // if +end; + +procedure TTiendaWebController.Anadir(ATiendaWeb: IBizTiendaWeb); +begin + ATiendaWeb.Insert; +end; + +procedure TTiendaWebController.AsignarDataModule; +begin + FDataModule := TDataModuleTiendaWeb.Create(Nil); +end; + +procedure TTiendaWebController.AsignarID(ATiendaWeb: IBizTiendaWeb; + const IDNuevo: Integer); +begin + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + if ATiendaWeb.EsNuevo then + begin + ATiendaWeb.Edit; + ATiendaWeb.ID := IDNuevo; + ATiendaWeb.Post; + end; +end; + +constructor TTiendaWebController.Create; +begin + AsignarDataModule; +end; + +function TTiendaWebController.Buscar(const ID_Empresa: Integer): IBizTiendaWeb; +var + ATienda : IBizTiendaWeb; +begin + ATienda := (FDataModule as IDataModuleTiendaWeb).GetItem(ID_Empresa); + + ATienda.DataTable.Active := True; + if ATienda.DataTable.RecordCount = 0 then + Anadir(ATienda); + Result := ATienda; +end; + +function TTiendaWebController._Vacio: IBizTiendaWeb; +begin + Result := Buscar(ID_NULO); +end; + +function TTiendaWebController.DescargarPedidos( + ATiendaWeb: IBizTiendaWeb): Boolean; +var + Respuesta : Integer; + ADlg : TJSDialog; +begin + Result := False; + + if not Assigned(ATiendaWeb) then + raise Exception.Create('TiendaWeb no asignada'); + + ATiendaWeb.DataTable.Active := True; + if (ATiendaWeb.TIENDA_ACTIVA <> 1) then + begin + if (ShowConfirmMessage('La tienda no está activada', 'No se ha activado o configurado el acceso a la tienda.' + + #13 + '¿Desea hacerlo ahora?') = IDYES) then + begin + if IsPositiveResult(Self.Ver(ATiendaWeb)) then + Self.ActualizarTienda(ATiendaWeb); + end; + Exit; + end; + + if not Self.HayConexionConTienda(ATiendaWeb) then + begin + ShowErrorMessage('No hay conexión con la tienda web', 'Se ha producido un error al intentar realizar la conexión con la tienda web.' + + #10#13 + 'Inténtelo de nuevo pasados unos minutos o revise los datos de conexión a la tienda.'); + Exit; + end; + + try + ADlg := TJSDialog.Create(nil); + ShowHourglassCursor; + try + with ADlg do + begin + Title := 'Descarga de pedidos desde la tienda web'; + DialogOptions := [doProgressBarMarquee, doTopMost]; + ButtonBar.Buttons := []; + end; + + ADlg.Instruction.Text := 'Descargando pedidos...'; + ADlg.Execute; + Application.ProcessMessages; + + Result := uActualizarPedidosUtils.ActualizarPedidosTienda(ATiendaWeb); + Application.ProcessMessages; + + ADlg.Close; + + if Result then + ShowInfoMessage('Descarga de pedidos realizada', 'Se han descagado correctamente los pedidos nuevos desde la tienda web.'); + finally + HideHourglassCursor; + ADlg.Close; + ADlg.Free; + ADlg := NIL; + Application.ProcessMessages; + end; + except + on E: Exception do + begin + // Cannot connect to mySQL server on localhost (10061) + if (Pos('(10061)', E.Message) > 0) then + begin + ShowErrorMessage('No hay conexión con la tienda web', 'Se ha producido un error al intentar realizar la conexión con la tienda web.' + + #10#13 + 'Inténtelo de nuevo pasados unos minutos o revise los datos de conexión a la tienda.', E); + end + else + ShowErrorMessage('Error durante la descarga de pedido', 'Se ha producido un error al intentar descargar los pedidos nuevos desde la tienda web.', E); + end; + end; // try ... except +end; + +procedure TTiendaWebController.DescartarCambios(ATiendaWeb: IBizTiendaWeb); +begin + if not Assigned(ATiendaWeb) then + raise Exception.Create ('IBizTiendaWeb no asignado'); + + ShowHourglassCursor; + try + if (ATiendaWeb.State in dsEditModes) then + ATiendaWeb.Cancel; + + ATiendaWeb.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TTiendaWebController.Destroy; +begin + FDataModule := NIL; + + inherited; +end; + + +function TTiendaWebController.ValidarTiendaWeb(ATiendaWeb: IBizTiendaWeb): Boolean; +begin + Result := False; + + if not Assigned(ATiendaWeb) then + raise Exception.Create ('IBizTiendaWeb no asignado'); + + if (ATiendaWeb.DataTable.State in dsEditModes) then + ATiendaWeb.DataTable.Post; + + Result := True; +end; + +function TTiendaWebController.Ver(ATiendaWeb: IBizTiendaWeb) : Integer; +var + AEditor : IEditorTiendaWeb; +begin + Result := mrNone; + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorTiendaWeb', IEditorTiendaWeb, AEditor); + with AEditor do + TiendaWeb := ATiendaWeb; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + Result := AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TTiendaWebController.Eliminar(ATiendaWeb: IBizTiendaWeb): Boolean; +begin + Result := False; + + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignado'); + + ShowHourglassCursor; + try + if (ATiendaWeb.State in dsEditModes) then + ATiendaWeb.Cancel; + + ATiendaWeb.Delete; + ATiendaWeb.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TTiendaWebController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +end; + +function TTiendaWebController.Guardar(ATiendaWeb: IBizTiendaWeb): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarTiendaWeb(ATiendaWeb) then + begin + ShowHourglassCursor; + try + if ATiendaWeb.EsNuevo then + NuevoID := FDataModule.GetNextID(ATiendaWeb.DataTable.LogicalName) + else + NuevoID := ATiendaWeb.ID; + + AsignarID(ATiendaWeb, NuevoID); + ATiendaWeb.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + + +function TTiendaWebController.HayConexionConTienda( + ATiendaWeb: IBizTiendaWeb): Boolean; +begin + if not Assigned(ATiendaWeb) then + raise Exception.Create ('TiendaWeb no asignada'); + + with ATiendaWeb do + begin + DataTable.Active := True; + Result := Self.HayConexionConTienda(BDSERVER, BDNAME, BDUSER, BDPASS); + end; +end; + +function TTiendaWebController.HayConexionConTienda( + const ABDServer : String; const ABDName : String; + const ABDUser : String; const ABDPass : String): Boolean; +var + SQLConnection1: TSQLConnection; +begin + SQLConnection1 := TSQLConnection.Create(nil); + try + with SQLConnection1 do + begin + Name := 'SQLConnection1'; + ConnectionName := 'MySQLConnection'; + DriverName := 'MySQL'; + GetDriverFunc := 'getSQLDriverMYSQL'; + LibraryName := 'dbxmys30.dll'; + LoginPrompt := False; + with Params do + begin + Clear; + Add('BlobSize=-1'); + Add('DriverName=MySQL'); + Add('ErrorResourceFile='); + Add('LocaleCode=0000'); + Add('Compressed=True'); + Add('Encrypted=True'); + Add('Database=' + ABDName); + Add('HostName=' + ABDServer); + Add('User_Name=' + ABDUser); + Add('Password=' + ABDPass); + end; + VendorLib := 'LIBMYSQL.dll'; + + try + Connected := True; + Result := True; + Connected := False; + except + Result := False; + end; + end; + finally + FreeAndNIL(SQLConnection1); + end; +end; + +end. diff --git a/Source/Modulos/Tienda web/Data/TiendaWeb_data.bdsproj b/Source/Modulos/Tienda web/Data/TiendaWeb_data.bdsproj new file mode 100644 index 00000000..d4a6d43b --- /dev/null +++ b/Source/Modulos/Tienda web/Data/TiendaWeb_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiendaWeb_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/Tienda web/Data/TiendaWeb_data.dpk b/Source/Modulos/Tienda web/Data/TiendaWeb_data.dpk new file mode 100644 index 00000000..01fb2e2e --- /dev/null +++ b/Source/Modulos/Tienda web/Data/TiendaWeb_data.dpk @@ -0,0 +1,51 @@ +package TiendaWeb_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, + dbrtl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base, + Usuarios, + TiendaWeb_model; + +contains + uDataModuleTiendaWeb in 'uDataModuleTiendaWeb.pas' {DataModuleTiendaWeb: TDAClientDataModule}; + +end. diff --git a/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc b/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Tienda web/Data/TiendaWeb_data.rc b/Source/Modulos/Tienda web/Data/TiendaWeb_data.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Tienda web/Data/TiendaWeb_data.res b/Source/Modulos/Tienda web/Data/TiendaWeb_data.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Tienda web/Data/TiendaWeb_data.res differ diff --git a/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.dfm b/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.dfm new file mode 100644 index 00000000..dccf2f2b --- /dev/null +++ b/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.dfm @@ -0,0 +1,1753 @@ +object DataModuleTiendaWeb: TDataModuleTiendaWeb + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 590 + Width = 605 + object RORemoteService: TRORemoteService + ServiceName = 'srvTiendaWeb' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 64 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 64 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 64 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 64 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 64 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 64 + Top = 324 + end + object tbl_TiendaWeb: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_ID_EMPRESA' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_ACTIVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_TIENDA_ACTIVA' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_TIENDA_ACTIVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDSERVER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_BDSERVER' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_BDSERVER' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDPORT' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_BDPORT' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_BDPORT' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDNAME' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_BDNAME' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_BDNAME' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDUSER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_BDUSER' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_BDUSER' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDPASS' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_BDPASS' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_BDPASS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ULTIMA_ACTUALIZACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TiendaWeb_ULTIMA_ACTUALIZACION' + Alignment = taLeftJustify + DictionaryEntry = 'TiendaWeb_ULTIMA_ACTUALIZACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'TiendaWeb' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'TiendaWeb' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'TiendaWeb' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TiendaWeb' + IndexDefs = <> + Left = 288 + Top = 88 + end + object ds_TiendaWeb: TDADataSource + DataTable = tbl_TiendaWeb + Left = 288 + Top = 24 + end + object tbl_osc_AddressBook: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'address_book_id' + DataType = datInteger + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_customers_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_gender' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_gender' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_company' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_firstname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_lastname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_street_address' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_suburb' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_postcode' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_city' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_state' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_country_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_country_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_zone_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_entry_zone_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_address_book_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_AddressBook_rdx_address_book_id_local' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'customers_id=customers_id') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_AddressBook' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_AddressBook' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_AddressBook' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_osc_Customers + MasterFields = 'customers_id' + DetailFields = 'customers_id' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_AddressBook' + IndexDefs = <> + Left = 400 + Top = 248 + end + object ds_osc_AddressBook: TDADataSource + DataTable = tbl_osc_AddressBook + Left = 400 + Top = 176 + end + object tbl_osc_Customers: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'customers_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'osc_Customers_customers_id' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_firstname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_lastname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_email_address' + DataType = datString + Size = 96 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_email_address' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_default_address_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_default_address_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_telephone' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_fax' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_fax' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_password' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_customers_password' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'osc_Customers_rdx_customers_id_local' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_account_created' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_account_last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Customers' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Customers' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_Customers' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_Customers' + IndexDefs = <> + Left = 400 + Top = 88 + end + object ds_osc_Customers: TDADataSource + DataTable = tbl_osc_Customers + Left = 400 + Top = 24 + end + object tbl_osc_Manufacturers: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'manufacturers_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DefaultValue = '0' + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_name' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DefaultValue = #39#39 + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_image' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_added' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_manufacturers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Manufacturers' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Manufacturers' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_Manufacturers' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_Manufacturers' + IndexDefs = <> + Left = 520 + Top = 88 + end + object ds_osc_Manufacturers: TDADataSource + DataTable = tbl_osc_Manufacturers + Left = 520 + Top = 24 + end + object tbl_osc_Products: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'products_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DefaultValue = '0' + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_description' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_date_added' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_status' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Products' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Products' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_Products' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_Products' + IndexDefs = <> + Left = 520 + Top = 248 + end + object ds_osc_Products: TDADataSource + DataTable = tbl_osc_Products + Left = 520 + Top = 176 + end + object tbl_osc_Orders: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'orders_id' + DataType = datInteger + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_orders_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_country' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_purchased' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_status' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_date_finished' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'comments' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_Orders' + IndexDefs = <> + Left = 200 + Top = 336 + end + object ds_osc_Orders: TDADataSource + DataTable = tbl_osc_Orders + Left = 200 + Top = 400 + end + object tbl_osc_Orders_products: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'orders_products_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_price' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'final_price' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_tax' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_quantity' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = < + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + MasterMappingMode = mmParams + MasterParamsMappings.Strings = ( + 'orders_id=orders_id') + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchemaOSC' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders_products' + end> + DataRequestCall.MethodName = 'GetDatasetDataExOSC' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders_products' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateDataOSC' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'osc_Orders_products' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + MasterSource = ds_osc_Orders + MasterFields = 'orders_id' + DetailFields = 'orders_id' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'osc_Orders_products' + IndexDefs = <> + Left = 312 + Top = 336 + end + object ds_osc_Orders_products: TDADataSource + DataTable = tbl_osc_Orders_products + Left = 312 + Top = 400 + end +end diff --git a/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.pas b/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.pas new file mode 100644 index 00000000..a8df944d --- /dev/null +++ b/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.pas @@ -0,0 +1,382 @@ +{ +=============================================================================== + 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 uDataModuleTiendaWeb; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleTiendaWeb, uBizTiendaWeb, uBizOscAddressBook, uBizOscCustomers, + uBizOscManufacturers, uBizOscProducts, uBizOscOrderProducts, uBizOscOrders; + +type + TDataModuleTiendaWeb = class(TDAClientDataModule, IDataModuleTiendaWeb) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_TiendaWeb: TDACDSDataTable; + ds_TiendaWeb: TDADataSource; + tbl_osc_AddressBook: TDACDSDataTable; + ds_osc_AddressBook: TDADataSource; + tbl_osc_Customers: TDACDSDataTable; + ds_osc_Customers: TDADataSource; + tbl_osc_Manufacturers: TDACDSDataTable; + ds_osc_Manufacturers: TDADataSource; + tbl_osc_Products: TDACDSDataTable; + ds_osc_Products: TDADataSource; + tbl_osc_Orders: TDACDSDataTable; + ds_osc_Orders: TDADataSource; + tbl_osc_Orders_products: TDACDSDataTable; + ds_osc_Orders_products: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + + function _GetOSCAddressBook: IBizOscAddressBook; + function _GetOSCOrderProducts: IBizOSCOrderProducts; + public + function GetNextID(const DataSetName : String) : Integer; + function GetItems: IBizTiendaWeb; + function GetItem(const ID_Empresa : Integer) : IBizTiendaWeb; + function NewItem : IBizTiendaWeb; + + function GetOSCCustomers: IBizOSCCustomer; + function GetOSCCustomer(const IDLocal : Integer): IBizOSCCustomer; + function NewOSCCustomer : IBizOSCCustomer; + + function GetOSCManufacturers: IBizOSCManufacturer; + function GetOSCManufacturer(const IDLocal : Integer): IBizOSCManufacturer; + function NewOSCManufacturer : IBizOSCManufacturer; + + function GetOSCProducts: IBizOSCProduct; + function GetOSCProduct(const IDLocal : Integer): IBizOSCProduct; + function NewOSCProduct : IBizOSCProduct; + + function GetNextIDOSC(const DataSetName : String) : Integer; + + function GetOSCOrders: IBizOscOrder; + function GetOSCOrder(const IDLocal : Integer): IBizOscOrder; + + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schTiendaWebClient_Intf; + +{ TDataModuleTiendaWeb } + + +// Descomentar si tiene informe +// function TDataModuleTiendaWeb.GetReport(const AIBizTiendaWebID: Integer): Binary; +// begin +// Result := (RORemoteService as IsrvTiendaWeb).GenerateReport(AIBizTiendaWebID) +// end; + +procedure TDataModuleTiendaWeb.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleTiendaWeb.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_TiendaWeb then + Result := 'GEN_TIENDA_WEB_ID' +end; + +function TDataModuleTiendaWeb.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvTiendaWeb).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleTiendaWeb.GetNextIDOSC(const DataSetName: String): Integer; +begin + Result := (RORemoteService as IsrvTiendaWeb).GetNextAutoIncOSC(DataSetName); +end; + +function TDataModuleTiendaWeb._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + +function TDataModuleTiendaWeb._GetOSCAddressBook: IBizOscAddressBook; +var + AAddressBook : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AAddressBook := _CloneDataTable(tbl_osc_AddressBook); + with AAddressBook do + begin + BusinessRulesID := BIZ_CLIENT_OSC_ADDRESSBOOK; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AAddressBook as IBizOscAddressBook); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb._GetOSCOrderProducts: IBizOscOrderProducts; +var + AOrderProducts : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AOrderProducts := _CloneDataTable(tbl_osc_Orders_products); + with AOrderProducts do + begin + BusinessRulesID := BIZ_CLIENT_OSC_ORDERPRODUCTS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AOrderProducts as IBizOscOrderProducts); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetItems: IBizTiendaWeb; +var + AIBizTiendaWeb : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AIBizTiendaWeb := _CloneDataTable(tbl_TiendaWeb); + AIBizTiendaWeb.BusinessRulesID := BIZ_CLIENT_TIENDAWEB; + + Result := (AIBizTiendaWeb as IBizTiendaWeb); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetItem(const ID_Empresa: Integer): IBizTiendaWeb; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('TIENDA_WEB.' + fld_TiendaWebID_EMPRESA + ' = ' + IntToStr(ID_Empresa)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.NewItem: IBizTiendaWeb; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleTiendaWeb.NewOSCCustomer: IBizOSCCustomer; +begin + Result := GetOSCCustomer(ID_NULO) +end; + +function TDataModuleTiendaWeb.NewOSCManufacturer: IBizOSCManufacturer; +begin + Result := GetOSCManufacturer(ID_NULO) +end; + +function TDataModuleTiendaWeb.NewOSCProduct: IBizOSCProduct; +begin + Result := GetOSCProduct(ID_NULO) +end; + +function TDataModuleTiendaWeb.GetOSCCustomer( + const IDLocal: Integer): IBizOSCCustomer; +begin + ShowHourglassCursor; + try + Result := Self.GetOSCCustomers; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_osc_Customersrdx_customers_id_local + ' = ' + IntToStr(IDLocal)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCCustomers: IBizOSCCustomer; +var + ACustomer : TDACDSDataTable; +begin + ShowHourglassCursor; + try + ACustomer := _CloneDataTable(tbl_osc_Customers); + ACustomer.BusinessRulesID := BIZ_CLIENT_OSC_CUSTOMER; + + with TBizOSCCustomer(ACustomer.BusinessEventsObj) do + begin + AddressBook := _GetOSCAddressBook; + end; + + Result := (ACustomer as IBizOSCCustomer); + finally + HideHourglassCursor; + end; +end; + + +function TDataModuleTiendaWeb.GetOSCManufacturer( + const IDLocal: Integer): IBizOSCManufacturer; +begin + ShowHourglassCursor; + try + Result := Self.GetOSCManufacturers; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_osc_Manufacturersrdx_manufacturers_id_local + ' = ' + IntToStr(IDLocal)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCManufacturers: IBizOSCManufacturer; +var + AManufacturer : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AManufacturer := _CloneDataTable(tbl_osc_Manufacturers); + AManufacturer.BusinessRulesID := BIZ_CLIENT_OSC_MANUFACTURER; + + Result := (AManufacturer as IBizOSCManufacturer); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCOrder(const IDLocal: Integer): IBizOscOrder; +begin + ShowHourglassCursor; + try + Result := Self.GetOSCOrders; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_osc_Ordersorders_id + ' = ' + IntToStr(IDLocal)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCOrders: IBizOscOrder; +var + AOrder : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AOrder := _CloneDataTable(tbl_osc_Orders); + AOrder.BusinessRulesID := BIZ_CLIENT_OSC_ORDER; + + with TBizOscOrder(AOrder.BusinessEventsObj) do + begin + OrderProducts := _GetOSCOrderProducts; + end; + + Result := (AOrder as IBizOscOrder); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCProduct( + const IDLocal: Integer): IBizOSCProduct; +begin + ShowHourglassCursor; + try + Result := Self.GetOSCProducts; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText(fld_osc_Productsrdx_products_id_local + ' = ' + IntToStr(IDLocal)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiendaWeb.GetOSCProducts: IBizOSCProduct; +var + AProduct : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AProduct := _CloneDataTable(tbl_osc_Products); + AProduct.BusinessRulesID := BIZ_CLIENT_OSC_PRODUCT; + + Result := (AProduct as IBizOSCProduct); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Tienda web/Model/Data/uIDataModuleTiendaWeb.pas b/Source/Modulos/Tienda web/Model/Data/uIDataModuleTiendaWeb.pas new file mode 100644 index 00000000..fde252b0 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/Data/uIDataModuleTiendaWeb.pas @@ -0,0 +1,60 @@ +{ +=============================================================================== + 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 uIDataModuleTiendaWeb; + +interface + +uses + uBizTiendaWeb, uBizOscAddressBook, uBizOscCustomers, uBizOscManufacturers, + uBizOscProducts, uBizOscOrders; + +type + IDataModuleTiendaWeb = interface + ['{E1208D47-C342-4DE1-879A-20F7689AB00A}'] + function GetItems: IBizTiendaWeb; + function GetNextID(const DataSetName : String) : Integer; + function GetItem(const ID_Empresa : Integer) : IBizTiendaWeb; + function NewItem : IBizTiendaWeb; + + function GetOSCCustomers: IBizOSCCustomer; + function GetOSCCustomer(const IDLocal : Integer): IBizOSCCustomer; + function NewOSCCustomer : IBizOSCCustomer; + + function GetOSCManufacturers: IBizOSCManufacturer; + function GetOSCManufacturer(const IDLocal : Integer): IBizOSCManufacturer; + function NewOSCManufacturer : IBizOSCManufacturer; + + function GetOSCProducts: IBizOSCProduct; + function GetOSCProduct(const IDLocal : Integer): IBizOSCProduct; + function NewOSCProduct : IBizOSCProduct; + + function GetOSCOrders: IBizOscOrder; + function GetOSCOrder(const IDLocal : Integer): IBizOscOrder; + + function GetNextIDOSC(const DataSetName : String) : Integer; + end; + +implementation + +end. diff --git a/Source/Modulos/Tienda web/Model/TiendaWeb_model.bdsproj b/Source/Modulos/Tienda web/Model/TiendaWeb_model.bdsproj new file mode 100644 index 00000000..7c75b319 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/TiendaWeb_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiendaWeb_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/Tienda web/Model/TiendaWeb_model.dpk b/Source/Modulos/Tienda web/Model/TiendaWeb_model.dpk new file mode 100644 index 00000000..cffe5a9b --- /dev/null +++ b/Source/Modulos/Tienda web/Model/TiendaWeb_model.dpk @@ -0,0 +1,51 @@ +package TiendaWeb_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + DataAbstract_D10, + Usuarios; + +contains + uIDataModuleTiendaWeb in 'Data\uIDataModuleTiendaWeb.pas', + uBizTiendaWeb in 'uBizTiendaWeb.pas', + uBizOscCustomers in 'uBizOscCustomers.pas', + uBizOscAddressBook in 'uBizOscAddressBook.pas', + uBizOscManufacturers in 'uBizOscManufacturers.pas', + uBizOscProducts in 'uBizOscProducts.pas', + uBizOscOrders in 'uBizOscOrders.pas', + uBizOscOrderProducts in 'uBizOscOrderProducts.pas', + uBizOscOrderStatus in 'uBizOscOrderStatus.pas', + schTiendaWebClient_Intf in 'schTiendaWebClient_Intf.pas', + schTiendaWebServer_Intf in 'schTiendaWebServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Tienda web/Model/TiendaWeb_model.rc b/Source/Modulos/Tienda web/Model/TiendaWeb_model.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Tienda web/Model/TiendaWeb_model.res b/Source/Modulos/Tienda web/Model/TiendaWeb_model.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Tienda web/Model/TiendaWeb_model.res differ diff --git a/Source/Modulos/Tienda web/Model/schTiendaWebClient_Intf.pas b/Source/Modulos/Tienda web/Model/schTiendaWebClient_Intf.pas new file mode 100644 index 00000000..4c9e74a2 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/schTiendaWebClient_Intf.pas @@ -0,0 +1,2104 @@ +unit schTiendaWebClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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_osc_Customers = '{0A073914-4E57-4BA0-A099-93D816184923}'; + RID_GetLastID = '{30E60478-6606-4F48-94BA-614B86F4EFEC}'; + RID_osc_AddressBook = '{824D5EC9-ADE4-4B79-BC35-740873B498C9}'; + RID_TiendaWeb = '{78851091-8B72-4312-B148-2570B0DA8DD2}'; + RID_osc_Manufacturers = '{DA120336-436E-4FC5-9EFB-84FEA225230B}'; + RID_osc_Languages = '{58C6E765-4B3D-46DB-85B8-E65D507ED6EF}'; + RID_osc_Products = '{0BE07E04-B11D-46F4-8ADB-433F36449D8D}'; + RID_osc_Orders = '{EB8B005F-A5C2-4DCE-B6E9-E9CFDE2933F0}'; + RID_osc_Orders_products = '{F1A522C7-DB00-4D9C-B168-B1554861306A}'; + RID_osc_Orders_status_history = '{1E173122-DDEF-4D73-87BF-EDC46D73902A}'; + + { Data table names } + nme_osc_Customers = 'osc_Customers'; + nme_GetLastID = 'GetLastID'; + nme_osc_AddressBook = 'osc_AddressBook'; + nme_TiendaWeb = 'TiendaWeb'; + nme_osc_Manufacturers = 'osc_Manufacturers'; + nme_osc_Languages = 'osc_Languages'; + nme_osc_Products = 'osc_Products'; + nme_osc_Orders = 'osc_Orders'; + nme_osc_Orders_products = 'osc_Orders_products'; + nme_osc_Orders_status_history = 'osc_Orders_status_history'; + + { osc_Customers fields } + fld_osc_Customerscustomers_id = 'customers_id'; + fld_osc_Customerscustomers_firstname = 'customers_firstname'; + fld_osc_Customerscustomers_lastname = 'customers_lastname'; + fld_osc_Customerscustomers_email_address = 'customers_email_address'; + fld_osc_Customerscustomers_default_address_id = 'customers_default_address_id'; + fld_osc_Customerscustomers_telephone = 'customers_telephone'; + fld_osc_Customerscustomers_fax = 'customers_fax'; + fld_osc_Customerscustomers_password = 'customers_password'; + fld_osc_Customersrdx_customers_id_local = 'rdx_customers_id_local'; + fld_osc_Customersdate_account_created = 'date_account_created'; + fld_osc_Customersdate_account_last_modified = 'date_account_last_modified'; + + { osc_Customers field indexes } + idx_osc_Customerscustomers_id = 0; + idx_osc_Customerscustomers_firstname = 1; + idx_osc_Customerscustomers_lastname = 2; + idx_osc_Customerscustomers_email_address = 3; + idx_osc_Customerscustomers_default_address_id = 4; + idx_osc_Customerscustomers_telephone = 5; + idx_osc_Customerscustomers_fax = 6; + idx_osc_Customerscustomers_password = 7; + idx_osc_Customersrdx_customers_id_local = 8; + idx_osc_Customersdate_account_created = 9; + idx_osc_Customersdate_account_last_modified = 10; + + { GetLastID fields } + fld_GetLastIDlast_id = 'last_id'; + + { GetLastID field indexes } + idx_GetLastIDlast_id = 0; + + { osc_AddressBook fields } + fld_osc_AddressBookaddress_book_id = 'address_book_id'; + fld_osc_AddressBookcustomers_id = 'customers_id'; + fld_osc_AddressBookentry_gender = 'entry_gender'; + fld_osc_AddressBookentry_company = 'entry_company'; + fld_osc_AddressBookentry_firstname = 'entry_firstname'; + fld_osc_AddressBookentry_lastname = 'entry_lastname'; + fld_osc_AddressBookentry_street_address = 'entry_street_address'; + fld_osc_AddressBookentry_suburb = 'entry_suburb'; + fld_osc_AddressBookentry_postcode = 'entry_postcode'; + fld_osc_AddressBookentry_city = 'entry_city'; + fld_osc_AddressBookentry_state = 'entry_state'; + fld_osc_AddressBookentry_country_id = 'entry_country_id'; + fld_osc_AddressBookentry_zone_id = 'entry_zone_id'; + fld_osc_AddressBookentry_telephone = 'entry_telephone'; + fld_osc_AddressBookrdx_address_book_id_local = 'rdx_address_book_id_local'; + + { osc_AddressBook field indexes } + idx_osc_AddressBookaddress_book_id = 0; + idx_osc_AddressBookcustomers_id = 1; + idx_osc_AddressBookentry_gender = 2; + idx_osc_AddressBookentry_company = 3; + idx_osc_AddressBookentry_firstname = 4; + idx_osc_AddressBookentry_lastname = 5; + idx_osc_AddressBookentry_street_address = 6; + idx_osc_AddressBookentry_suburb = 7; + idx_osc_AddressBookentry_postcode = 8; + idx_osc_AddressBookentry_city = 9; + idx_osc_AddressBookentry_state = 10; + idx_osc_AddressBookentry_country_id = 11; + idx_osc_AddressBookentry_zone_id = 12; + idx_osc_AddressBookentry_telephone = 13; + idx_osc_AddressBookrdx_address_book_id_local = 14; + + { TiendaWeb fields } + fld_TiendaWebID = 'ID'; + fld_TiendaWebID_EMPRESA = 'ID_EMPRESA'; + fld_TiendaWebTIENDA_ACTIVA = 'TIENDA_ACTIVA'; + fld_TiendaWebBDSERVER = 'BDSERVER'; + fld_TiendaWebBDPORT = 'BDPORT'; + fld_TiendaWebBDNAME = 'BDNAME'; + fld_TiendaWebBDUSER = 'BDUSER'; + fld_TiendaWebBDPASS = 'BDPASS'; + fld_TiendaWebULTIMA_ACTUALIZACION = 'ULTIMA_ACTUALIZACION'; + + { TiendaWeb field indexes } + idx_TiendaWebID = 0; + idx_TiendaWebID_EMPRESA = 1; + idx_TiendaWebTIENDA_ACTIVA = 2; + idx_TiendaWebBDSERVER = 3; + idx_TiendaWebBDPORT = 4; + idx_TiendaWebBDNAME = 5; + idx_TiendaWebBDUSER = 6; + idx_TiendaWebBDPASS = 7; + idx_TiendaWebULTIMA_ACTUALIZACION = 8; + + { osc_Manufacturers fields } + fld_osc_Manufacturersmanufacturers_id = 'manufacturers_id'; + fld_osc_Manufacturersmanufacturers_name = 'manufacturers_name'; + fld_osc_Manufacturersmanufacturers_image = 'manufacturers_image'; + fld_osc_Manufacturersdate_added = 'date_added'; + fld_osc_Manufacturerslast_modified = 'last_modified'; + fld_osc_Manufacturersrdx_manufacturers_id_local = 'rdx_manufacturers_id_local'; + + { osc_Manufacturers field indexes } + idx_osc_Manufacturersmanufacturers_id = 0; + idx_osc_Manufacturersmanufacturers_name = 1; + idx_osc_Manufacturersmanufacturers_image = 2; + idx_osc_Manufacturersdate_added = 3; + idx_osc_Manufacturerslast_modified = 4; + idx_osc_Manufacturersrdx_manufacturers_id_local = 5; + + { osc_Languages fields } + fld_osc_Languageslanguages_id = 'languages_id'; + fld_osc_Languagesname = 'name'; + fld_osc_Languagescode = 'code'; + fld_osc_Languagesimage = 'image'; + fld_osc_Languagesdirectory = 'directory'; + fld_osc_Languagessort_order = 'sort_order'; + + { osc_Languages field indexes } + idx_osc_Languageslanguages_id = 0; + idx_osc_Languagesname = 1; + idx_osc_Languagescode = 2; + idx_osc_Languagesimage = 3; + idx_osc_Languagesdirectory = 4; + idx_osc_Languagessort_order = 5; + + { osc_Products fields } + fld_osc_Productsproducts_id = 'products_id'; + fld_osc_Productsproducts_name = 'products_name'; + fld_osc_Productsproducts_description = 'products_description'; + fld_osc_Productsproducts_model = 'products_model'; + fld_osc_Productsproducts_date_added = 'products_date_added'; + fld_osc_Productsproducts_last_modified = 'products_last_modified'; + fld_osc_Productsproducts_status = 'products_status'; + fld_osc_Productsmanufacturers_id = 'manufacturers_id'; + fld_osc_Productsrdx_products_id_local = 'rdx_products_id_local'; + + { osc_Products field indexes } + idx_osc_Productsproducts_id = 0; + idx_osc_Productsproducts_name = 1; + idx_osc_Productsproducts_description = 2; + idx_osc_Productsproducts_model = 3; + idx_osc_Productsproducts_date_added = 4; + idx_osc_Productsproducts_last_modified = 5; + idx_osc_Productsproducts_status = 6; + idx_osc_Productsmanufacturers_id = 7; + idx_osc_Productsrdx_products_id_local = 8; + + { osc_Orders fields } + fld_osc_Ordersorders_id = 'orders_id'; + fld_osc_Ordersrdx_orders_id_local = 'rdx_orders_id_local'; + fld_osc_Orderscustomers_id = 'customers_id'; + fld_osc_Ordersrdx_customers_id_local = 'rdx_customers_id_local'; + fld_osc_Ordersdelivery_name = 'delivery_name'; + fld_osc_Ordersdelivery_company = 'delivery_company'; + fld_osc_Ordersdelivery_street_address = 'delivery_street_address'; + fld_osc_Ordersdelivery_suburb = 'delivery_suburb'; + fld_osc_Ordersdelivery_city = 'delivery_city'; + fld_osc_Ordersdelivery_postcode = 'delivery_postcode'; + fld_osc_Ordersdelivery_state = 'delivery_state'; + fld_osc_Ordersdelivery_country = 'delivery_country'; + fld_osc_Ordersdelivery_telephone = 'delivery_telephone'; + fld_osc_Orderslast_modified = 'last_modified'; + fld_osc_Ordersdate_purchased = 'date_purchased'; + fld_osc_Ordersorders_status = 'orders_status'; + fld_osc_Ordersorders_date_finished = 'orders_date_finished'; + fld_osc_Orderscomments = 'comments'; + + { osc_Orders field indexes } + idx_osc_Ordersorders_id = 0; + idx_osc_Ordersrdx_orders_id_local = 1; + idx_osc_Orderscustomers_id = 2; + idx_osc_Ordersrdx_customers_id_local = 3; + idx_osc_Ordersdelivery_name = 4; + idx_osc_Ordersdelivery_company = 5; + idx_osc_Ordersdelivery_street_address = 6; + idx_osc_Ordersdelivery_suburb = 7; + idx_osc_Ordersdelivery_city = 8; + idx_osc_Ordersdelivery_postcode = 9; + idx_osc_Ordersdelivery_state = 10; + idx_osc_Ordersdelivery_country = 11; + idx_osc_Ordersdelivery_telephone = 12; + idx_osc_Orderslast_modified = 13; + idx_osc_Ordersdate_purchased = 14; + idx_osc_Ordersorders_status = 15; + idx_osc_Ordersorders_date_finished = 16; + idx_osc_Orderscomments = 17; + + { osc_Orders_products fields } + fld_osc_Orders_productsorders_products_id = 'orders_products_id'; + fld_osc_Orders_productsorders_id = 'orders_id'; + fld_osc_Orders_productsproducts_id = 'products_id'; + fld_osc_Orders_productsrdx_products_id_local = 'rdx_products_id_local'; + fld_osc_Orders_productsproducts_model = 'products_model'; + fld_osc_Orders_productsproducts_name = 'products_name'; + fld_osc_Orders_productsproducts_price = 'products_price'; + fld_osc_Orders_productsfinal_price = 'final_price'; + fld_osc_Orders_productsproducts_tax = 'products_tax'; + fld_osc_Orders_productsproducts_quantity = 'products_quantity'; + + { osc_Orders_products field indexes } + idx_osc_Orders_productsorders_products_id = 0; + idx_osc_Orders_productsorders_id = 1; + idx_osc_Orders_productsproducts_id = 2; + idx_osc_Orders_productsrdx_products_id_local = 3; + idx_osc_Orders_productsproducts_model = 4; + idx_osc_Orders_productsproducts_name = 5; + idx_osc_Orders_productsproducts_price = 6; + idx_osc_Orders_productsfinal_price = 7; + idx_osc_Orders_productsproducts_tax = 8; + idx_osc_Orders_productsproducts_quantity = 9; + + { osc_Orders_status_history fields } + fld_osc_Orders_status_historyorders_status_history_id = 'orders_status_history_id'; + fld_osc_Orders_status_historyorders_id = 'orders_id'; + fld_osc_Orders_status_historyrdx_orders_id_local = 'rdx_orders_id_local'; + fld_osc_Orders_status_historyorders_status_id = 'orders_status_id'; + fld_osc_Orders_status_historydate_added = 'date_added'; + fld_osc_Orders_status_historycustomer_notified = 'customer_notified'; + fld_osc_Orders_status_historycomments = 'comments'; + + { osc_Orders_status_history field indexes } + idx_osc_Orders_status_historyorders_status_history_id = 0; + idx_osc_Orders_status_historyorders_id = 1; + idx_osc_Orders_status_historyrdx_orders_id_local = 2; + idx_osc_Orders_status_historyorders_status_id = 3; + idx_osc_Orders_status_historydate_added = 4; + idx_osc_Orders_status_historycustomer_notified = 5; + idx_osc_Orders_status_historycomments = 6; + +type + { Iosc_Customers } + Iosc_Customers = interface(IDAStronglyTypedDataTable) + ['{162764B4-8320-4A24-AAB7-025C58713457}'] + { Property getters and setters } + function Getcustomers_idValue: Integer; + procedure Setcustomers_idValue(const aValue: Integer); + function Getcustomers_firstnameValue: String; + procedure Setcustomers_firstnameValue(const aValue: String); + function Getcustomers_lastnameValue: String; + procedure Setcustomers_lastnameValue(const aValue: String); + function Getcustomers_email_addressValue: String; + procedure Setcustomers_email_addressValue(const aValue: String); + function Getcustomers_default_address_idValue: Integer; + procedure Setcustomers_default_address_idValue(const aValue: Integer); + function Getcustomers_telephoneValue: String; + procedure Setcustomers_telephoneValue(const aValue: String); + function Getcustomers_faxValue: String; + procedure Setcustomers_faxValue(const aValue: String); + function Getcustomers_passwordValue: String; + procedure Setcustomers_passwordValue(const aValue: String); + function Getrdx_customers_id_localValue: Integer; + procedure Setrdx_customers_id_localValue(const aValue: Integer); + function Getdate_account_createdValue: DateTime; + procedure Setdate_account_createdValue(const aValue: DateTime); + function Getdate_account_last_modifiedValue: DateTime; + procedure Setdate_account_last_modifiedValue(const aValue: DateTime); + + + { Properties } + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property customers_firstname: String read Getcustomers_firstnameValue write Setcustomers_firstnameValue; + property customers_lastname: String read Getcustomers_lastnameValue write Setcustomers_lastnameValue; + property customers_email_address: String read Getcustomers_email_addressValue write Setcustomers_email_addressValue; + property customers_default_address_id: Integer read Getcustomers_default_address_idValue write Setcustomers_default_address_idValue; + property customers_telephone: String read Getcustomers_telephoneValue write Setcustomers_telephoneValue; + property customers_fax: String read Getcustomers_faxValue write Setcustomers_faxValue; + property customers_password: String read Getcustomers_passwordValue write Setcustomers_passwordValue; + property rdx_customers_id_local: Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property date_account_created: DateTime read Getdate_account_createdValue write Setdate_account_createdValue; + property date_account_last_modified: DateTime read Getdate_account_last_modifiedValue write Setdate_account_last_modifiedValue; + end; + + { Tosc_CustomersDataTableRules } + Tosc_CustomersDataTableRules = class(TDADataTableRules, Iosc_Customers) + private + protected + { Property getters and setters } + function Getcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getcustomers_firstnameValue: String; virtual; + procedure Setcustomers_firstnameValue(const aValue: String); virtual; + function Getcustomers_lastnameValue: String; virtual; + procedure Setcustomers_lastnameValue(const aValue: String); virtual; + function Getcustomers_email_addressValue: String; virtual; + procedure Setcustomers_email_addressValue(const aValue: String); virtual; + function Getcustomers_default_address_idValue: Integer; virtual; + procedure Setcustomers_default_address_idValue(const aValue: Integer); virtual; + function Getcustomers_telephoneValue: String; virtual; + procedure Setcustomers_telephoneValue(const aValue: String); virtual; + function Getcustomers_faxValue: String; virtual; + procedure Setcustomers_faxValue(const aValue: String); virtual; + function Getcustomers_passwordValue: String; virtual; + procedure Setcustomers_passwordValue(const aValue: String); virtual; + function Getrdx_customers_id_localValue: Integer; virtual; + procedure Setrdx_customers_id_localValue(const aValue: Integer); virtual; + function Getdate_account_createdValue: DateTime; virtual; + procedure Setdate_account_createdValue(const aValue: DateTime); virtual; + function Getdate_account_last_modifiedValue: DateTime; virtual; + procedure Setdate_account_last_modifiedValue(const aValue: DateTime); virtual; + + { Properties } + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property customers_firstname: String read Getcustomers_firstnameValue write Setcustomers_firstnameValue; + property customers_lastname: String read Getcustomers_lastnameValue write Setcustomers_lastnameValue; + property customers_email_address: String read Getcustomers_email_addressValue write Setcustomers_email_addressValue; + property customers_default_address_id: Integer read Getcustomers_default_address_idValue write Setcustomers_default_address_idValue; + property customers_telephone: String read Getcustomers_telephoneValue write Setcustomers_telephoneValue; + property customers_fax: String read Getcustomers_faxValue write Setcustomers_faxValue; + property customers_password: String read Getcustomers_passwordValue write Setcustomers_passwordValue; + property rdx_customers_id_local: Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property date_account_created: DateTime read Getdate_account_createdValue write Setdate_account_createdValue; + property date_account_last_modified: DateTime read Getdate_account_last_modifiedValue write Setdate_account_last_modifiedValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IGetLastID } + IGetLastID = interface(IDAStronglyTypedDataTable) + ['{21BF2253-5B69-422B-A0C7-0E804052BF83}'] + { Property getters and setters } + function Getlast_idValue: Integer; + procedure Setlast_idValue(const aValue: Integer); + + + { Properties } + property last_id: Integer read Getlast_idValue write Setlast_idValue; + end; + + { TGetLastIDDataTableRules } + TGetLastIDDataTableRules = class(TDADataTableRules, IGetLastID) + private + protected + { Property getters and setters } + function Getlast_idValue: Integer; virtual; + procedure Setlast_idValue(const aValue: Integer); virtual; + + { Properties } + property last_id: Integer read Getlast_idValue write Setlast_idValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_AddressBook } + Iosc_AddressBook = interface(IDAStronglyTypedDataTable) + ['{796F1672-B154-4F46-9D02-03C90EB37F82}'] + { Property getters and setters } + function Getaddress_book_idValue: Integer; + procedure Setaddress_book_idValue(const aValue: Integer); + function Getcustomers_idValue: Integer; + procedure Setcustomers_idValue(const aValue: Integer); + function Getentry_genderValue: String; + procedure Setentry_genderValue(const aValue: String); + function Getentry_companyValue: String; + procedure Setentry_companyValue(const aValue: String); + function Getentry_firstnameValue: String; + procedure Setentry_firstnameValue(const aValue: String); + function Getentry_lastnameValue: String; + procedure Setentry_lastnameValue(const aValue: String); + function Getentry_street_addressValue: String; + procedure Setentry_street_addressValue(const aValue: String); + function Getentry_suburbValue: String; + procedure Setentry_suburbValue(const aValue: String); + function Getentry_postcodeValue: String; + procedure Setentry_postcodeValue(const aValue: String); + function Getentry_cityValue: String; + procedure Setentry_cityValue(const aValue: String); + function Getentry_stateValue: String; + procedure Setentry_stateValue(const aValue: String); + function Getentry_country_idValue: Integer; + procedure Setentry_country_idValue(const aValue: Integer); + function Getentry_zone_idValue: Integer; + procedure Setentry_zone_idValue(const aValue: Integer); + function Getentry_telephoneValue: String; + procedure Setentry_telephoneValue(const aValue: String); + function Getrdx_address_book_id_localValue: Integer; + procedure Setrdx_address_book_id_localValue(const aValue: Integer); + + + { Properties } + property address_book_id: Integer read Getaddress_book_idValue write Setaddress_book_idValue; + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property entry_gender: String read Getentry_genderValue write Setentry_genderValue; + property entry_company: String read Getentry_companyValue write Setentry_companyValue; + property entry_firstname: String read Getentry_firstnameValue write Setentry_firstnameValue; + property entry_lastname: String read Getentry_lastnameValue write Setentry_lastnameValue; + property entry_street_address: String read Getentry_street_addressValue write Setentry_street_addressValue; + property entry_suburb: String read Getentry_suburbValue write Setentry_suburbValue; + property entry_postcode: String read Getentry_postcodeValue write Setentry_postcodeValue; + property entry_city: String read Getentry_cityValue write Setentry_cityValue; + property entry_state: String read Getentry_stateValue write Setentry_stateValue; + property entry_country_id: Integer read Getentry_country_idValue write Setentry_country_idValue; + property entry_zone_id: Integer read Getentry_zone_idValue write Setentry_zone_idValue; + property entry_telephone: String read Getentry_telephoneValue write Setentry_telephoneValue; + property rdx_address_book_id_local: Integer read Getrdx_address_book_id_localValue write Setrdx_address_book_id_localValue; + end; + + { Tosc_AddressBookDataTableRules } + Tosc_AddressBookDataTableRules = class(TDADataTableRules, Iosc_AddressBook) + private + protected + { Property getters and setters } + function Getaddress_book_idValue: Integer; virtual; + procedure Setaddress_book_idValue(const aValue: Integer); virtual; + function Getcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getentry_genderValue: String; virtual; + procedure Setentry_genderValue(const aValue: String); virtual; + function Getentry_companyValue: String; virtual; + procedure Setentry_companyValue(const aValue: String); virtual; + function Getentry_firstnameValue: String; virtual; + procedure Setentry_firstnameValue(const aValue: String); virtual; + function Getentry_lastnameValue: String; virtual; + procedure Setentry_lastnameValue(const aValue: String); virtual; + function Getentry_street_addressValue: String; virtual; + procedure Setentry_street_addressValue(const aValue: String); virtual; + function Getentry_suburbValue: String; virtual; + procedure Setentry_suburbValue(const aValue: String); virtual; + function Getentry_postcodeValue: String; virtual; + procedure Setentry_postcodeValue(const aValue: String); virtual; + function Getentry_cityValue: String; virtual; + procedure Setentry_cityValue(const aValue: String); virtual; + function Getentry_stateValue: String; virtual; + procedure Setentry_stateValue(const aValue: String); virtual; + function Getentry_country_idValue: Integer; virtual; + procedure Setentry_country_idValue(const aValue: Integer); virtual; + function Getentry_zone_idValue: Integer; virtual; + procedure Setentry_zone_idValue(const aValue: Integer); virtual; + function Getentry_telephoneValue: String; virtual; + procedure Setentry_telephoneValue(const aValue: String); virtual; + function Getrdx_address_book_id_localValue: Integer; virtual; + procedure Setrdx_address_book_id_localValue(const aValue: Integer); virtual; + + { Properties } + property address_book_id: Integer read Getaddress_book_idValue write Setaddress_book_idValue; + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property entry_gender: String read Getentry_genderValue write Setentry_genderValue; + property entry_company: String read Getentry_companyValue write Setentry_companyValue; + property entry_firstname: String read Getentry_firstnameValue write Setentry_firstnameValue; + property entry_lastname: String read Getentry_lastnameValue write Setentry_lastnameValue; + property entry_street_address: String read Getentry_street_addressValue write Setentry_street_addressValue; + property entry_suburb: String read Getentry_suburbValue write Setentry_suburbValue; + property entry_postcode: String read Getentry_postcodeValue write Setentry_postcodeValue; + property entry_city: String read Getentry_cityValue write Setentry_cityValue; + property entry_state: String read Getentry_stateValue write Setentry_stateValue; + property entry_country_id: Integer read Getentry_country_idValue write Setentry_country_idValue; + property entry_zone_id: Integer read Getentry_zone_idValue write Setentry_zone_idValue; + property entry_telephone: String read Getentry_telephoneValue write Setentry_telephoneValue; + property rdx_address_book_id_local: Integer read Getrdx_address_book_id_localValue write Setrdx_address_book_id_localValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { ITiendaWeb } + ITiendaWeb = interface(IDAStronglyTypedDataTable) + ['{E52D561D-E4F1-499B-BD5D-A7C95D9AE725}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetTIENDA_ACTIVAValue: Integer; + procedure SetTIENDA_ACTIVAValue(const aValue: Integer); + function GetBDSERVERValue: String; + procedure SetBDSERVERValue(const aValue: String); + function GetBDPORTValue: String; + procedure SetBDPORTValue(const aValue: String); + function GetBDNAMEValue: String; + procedure SetBDNAMEValue(const aValue: String); + function GetBDUSERValue: String; + procedure SetBDUSERValue(const aValue: String); + function GetBDPASSValue: String; + procedure SetBDPASSValue(const aValue: String); + function GetULTIMA_ACTUALIZACIONValue: DateTime; + procedure SetULTIMA_ACTUALIZACIONValue(const aValue: DateTime); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property TIENDA_ACTIVA: Integer read GetTIENDA_ACTIVAValue write SetTIENDA_ACTIVAValue; + property BDSERVER: String read GetBDSERVERValue write SetBDSERVERValue; + property BDPORT: String read GetBDPORTValue write SetBDPORTValue; + property BDNAME: String read GetBDNAMEValue write SetBDNAMEValue; + property BDUSER: String read GetBDUSERValue write SetBDUSERValue; + property BDPASS: String read GetBDPASSValue write SetBDPASSValue; + property ULTIMA_ACTUALIZACION: DateTime read GetULTIMA_ACTUALIZACIONValue write SetULTIMA_ACTUALIZACIONValue; + end; + + { TTiendaWebDataTableRules } + TTiendaWebDataTableRules = class(TDADataTableRules, ITiendaWeb) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetTIENDA_ACTIVAValue: Integer; virtual; + procedure SetTIENDA_ACTIVAValue(const aValue: Integer); virtual; + function GetBDSERVERValue: String; virtual; + procedure SetBDSERVERValue(const aValue: String); virtual; + function GetBDPORTValue: String; virtual; + procedure SetBDPORTValue(const aValue: String); virtual; + function GetBDNAMEValue: String; virtual; + procedure SetBDNAMEValue(const aValue: String); virtual; + function GetBDUSERValue: String; virtual; + procedure SetBDUSERValue(const aValue: String); virtual; + function GetBDPASSValue: String; virtual; + procedure SetBDPASSValue(const aValue: String); virtual; + function GetULTIMA_ACTUALIZACIONValue: DateTime; virtual; + procedure SetULTIMA_ACTUALIZACIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property TIENDA_ACTIVA: Integer read GetTIENDA_ACTIVAValue write SetTIENDA_ACTIVAValue; + property BDSERVER: String read GetBDSERVERValue write SetBDSERVERValue; + property BDPORT: String read GetBDPORTValue write SetBDPORTValue; + property BDNAME: String read GetBDNAMEValue write SetBDNAMEValue; + property BDUSER: String read GetBDUSERValue write SetBDUSERValue; + property BDPASS: String read GetBDPASSValue write SetBDPASSValue; + property ULTIMA_ACTUALIZACION: DateTime read GetULTIMA_ACTUALIZACIONValue write SetULTIMA_ACTUALIZACIONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_Manufacturers } + Iosc_Manufacturers = interface(IDAStronglyTypedDataTable) + ['{A6457F10-B10A-4C96-9C37-0D0F018948AD}'] + { Property getters and setters } + function Getmanufacturers_idValue: Integer; + procedure Setmanufacturers_idValue(const aValue: Integer); + function Getmanufacturers_nameValue: String; + procedure Setmanufacturers_nameValue(const aValue: String); + function Getmanufacturers_imageValue: String; + procedure Setmanufacturers_imageValue(const aValue: String); + function Getdate_addedValue: DateTime; + procedure Setdate_addedValue(const aValue: DateTime); + function Getlast_modifiedValue: DateTime; + procedure Setlast_modifiedValue(const aValue: DateTime); + function Getrdx_manufacturers_id_localValue: Integer; + procedure Setrdx_manufacturers_id_localValue(const aValue: Integer); + + + { Properties } + property manufacturers_id: Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property manufacturers_name: String read Getmanufacturers_nameValue write Setmanufacturers_nameValue; + property manufacturers_image: String read Getmanufacturers_imageValue write Setmanufacturers_imageValue; + property date_added: DateTime read Getdate_addedValue write Setdate_addedValue; + property last_modified: DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property rdx_manufacturers_id_local: Integer read Getrdx_manufacturers_id_localValue write Setrdx_manufacturers_id_localValue; + end; + + { Tosc_ManufacturersDataTableRules } + Tosc_ManufacturersDataTableRules = class(TDADataTableRules, Iosc_Manufacturers) + private + protected + { Property getters and setters } + function Getmanufacturers_idValue: Integer; virtual; + procedure Setmanufacturers_idValue(const aValue: Integer); virtual; + function Getmanufacturers_nameValue: String; virtual; + procedure Setmanufacturers_nameValue(const aValue: String); virtual; + function Getmanufacturers_imageValue: String; virtual; + procedure Setmanufacturers_imageValue(const aValue: String); virtual; + function Getdate_addedValue: DateTime; virtual; + procedure Setdate_addedValue(const aValue: DateTime); virtual; + function Getlast_modifiedValue: DateTime; virtual; + procedure Setlast_modifiedValue(const aValue: DateTime); virtual; + function Getrdx_manufacturers_id_localValue: Integer; virtual; + procedure Setrdx_manufacturers_id_localValue(const aValue: Integer); virtual; + + { Properties } + property manufacturers_id: Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property manufacturers_name: String read Getmanufacturers_nameValue write Setmanufacturers_nameValue; + property manufacturers_image: String read Getmanufacturers_imageValue write Setmanufacturers_imageValue; + property date_added: DateTime read Getdate_addedValue write Setdate_addedValue; + property last_modified: DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property rdx_manufacturers_id_local: Integer read Getrdx_manufacturers_id_localValue write Setrdx_manufacturers_id_localValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { + Esta tabla es sólo de consulta + } + { Iosc_Languages } + Iosc_Languages = interface(IDAStronglyTypedDataTable) + ['{D82EA36B-751F-46F1-8871-E8B1C565EBFD}'] + { Property getters and setters } + function Getlanguages_idValue: Integer; + procedure Setlanguages_idValue(const aValue: Integer); + function GetnameValue: String; + procedure SetnameValue(const aValue: String); + function GetcodeValue: String; + procedure SetcodeValue(const aValue: String); + function GetimageValue: String; + procedure SetimageValue(const aValue: String); + function GetdirectoryValue: String; + procedure SetdirectoryValue(const aValue: String); + function Getsort_orderValue: Integer; + procedure Setsort_orderValue(const aValue: Integer); + + + { Properties } + property languages_id: Integer read Getlanguages_idValue write Setlanguages_idValue; + property name: String read GetnameValue write SetnameValue; + property code: String read GetcodeValue write SetcodeValue; + property image: String read GetimageValue write SetimageValue; + property directory: String read GetdirectoryValue write SetdirectoryValue; + property sort_order: Integer read Getsort_orderValue write Setsort_orderValue; + end; + + { Tosc_LanguagesDataTableRules } + Tosc_LanguagesDataTableRules = class(TDADataTableRules, Iosc_Languages) + private + protected + { Property getters and setters } + function Getlanguages_idValue: Integer; virtual; + procedure Setlanguages_idValue(const aValue: Integer); virtual; + function GetnameValue: String; virtual; + procedure SetnameValue(const aValue: String); virtual; + function GetcodeValue: String; virtual; + procedure SetcodeValue(const aValue: String); virtual; + function GetimageValue: String; virtual; + procedure SetimageValue(const aValue: String); virtual; + function GetdirectoryValue: String; virtual; + procedure SetdirectoryValue(const aValue: String); virtual; + function Getsort_orderValue: Integer; virtual; + procedure Setsort_orderValue(const aValue: Integer); virtual; + + { Properties } + property languages_id: Integer read Getlanguages_idValue write Setlanguages_idValue; + property name: String read GetnameValue write SetnameValue; + property code: String read GetcodeValue write SetcodeValue; + property image: String read GetimageValue write SetimageValue; + property directory: String read GetdirectoryValue write SetdirectoryValue; + property sort_order: Integer read Getsort_orderValue write Setsort_orderValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_Products } + Iosc_Products = interface(IDAStronglyTypedDataTable) + ['{4A68DA4C-DFFB-4D24-93E7-E37CD819DF4F}'] + { Property getters and setters } + function Getproducts_idValue: Integer; + procedure Setproducts_idValue(const aValue: Integer); + function Getproducts_nameValue: String; + procedure Setproducts_nameValue(const aValue: String); + function Getproducts_descriptionValue: IROStrings; + procedure Setproducts_descriptionValue(const aValue: IROStrings); + function Getproducts_modelValue: String; + procedure Setproducts_modelValue(const aValue: String); + function Getproducts_date_addedValue: DateTime; + procedure Setproducts_date_addedValue(const aValue: DateTime); + function Getproducts_last_modifiedValue: DateTime; + procedure Setproducts_last_modifiedValue(const aValue: DateTime); + function Getproducts_statusValue: Integer; + procedure Setproducts_statusValue(const aValue: Integer); + function Getmanufacturers_idValue: Integer; + procedure Setmanufacturers_idValue(const aValue: Integer); + function Getrdx_products_id_localValue: Integer; + procedure Setrdx_products_id_localValue(const aValue: Integer); + + + { Properties } + property products_id: Integer read Getproducts_idValue write Setproducts_idValue; + property products_name: String read Getproducts_nameValue write Setproducts_nameValue; + property products_description: IROStrings read Getproducts_descriptionValue write Setproducts_descriptionValue; + property products_model: String read Getproducts_modelValue write Setproducts_modelValue; + property products_date_added: DateTime read Getproducts_date_addedValue write Setproducts_date_addedValue; + property products_last_modified: DateTime read Getproducts_last_modifiedValue write Setproducts_last_modifiedValue; + property products_status: Integer read Getproducts_statusValue write Setproducts_statusValue; + property manufacturers_id: Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property rdx_products_id_local: Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + end; + + { Tosc_ProductsDataTableRules } + Tosc_ProductsDataTableRules = class(TDADataTableRules, Iosc_Products) + private + protected + { Property getters and setters } + function Getproducts_idValue: Integer; virtual; + procedure Setproducts_idValue(const aValue: Integer); virtual; + function Getproducts_nameValue: String; virtual; + procedure Setproducts_nameValue(const aValue: String); virtual; + function Getproducts_descriptionValue: IROStrings; virtual; + procedure Setproducts_descriptionValue(const aValue: IROStrings); virtual; + function Getproducts_modelValue: String; virtual; + procedure Setproducts_modelValue(const aValue: String); virtual; + function Getproducts_date_addedValue: DateTime; virtual; + procedure Setproducts_date_addedValue(const aValue: DateTime); virtual; + function Getproducts_last_modifiedValue: DateTime; virtual; + procedure Setproducts_last_modifiedValue(const aValue: DateTime); virtual; + function Getproducts_statusValue: Integer; virtual; + procedure Setproducts_statusValue(const aValue: Integer); virtual; + function Getmanufacturers_idValue: Integer; virtual; + procedure Setmanufacturers_idValue(const aValue: Integer); virtual; + function Getrdx_products_id_localValue: Integer; virtual; + procedure Setrdx_products_id_localValue(const aValue: Integer); virtual; + + { Properties } + property products_id: Integer read Getproducts_idValue write Setproducts_idValue; + property products_name: String read Getproducts_nameValue write Setproducts_nameValue; + property products_description: IROStrings read Getproducts_descriptionValue write Setproducts_descriptionValue; + property products_model: String read Getproducts_modelValue write Setproducts_modelValue; + property products_date_added: DateTime read Getproducts_date_addedValue write Setproducts_date_addedValue; + property products_last_modified: DateTime read Getproducts_last_modifiedValue write Setproducts_last_modifiedValue; + property products_status: Integer read Getproducts_statusValue write Setproducts_statusValue; + property manufacturers_id: Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property rdx_products_id_local: Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_Orders } + Iosc_Orders = interface(IDAStronglyTypedDataTable) + ['{E065AF78-FF47-422D-B9D8-37E7419B0EB5}'] + { Property getters and setters } + function Getorders_idValue: Integer; + procedure Setorders_idValue(const aValue: Integer); + function Getrdx_orders_id_localValue: Integer; + procedure Setrdx_orders_id_localValue(const aValue: Integer); + function Getcustomers_idValue: Integer; + procedure Setcustomers_idValue(const aValue: Integer); + function Getrdx_customers_id_localValue: Integer; + procedure Setrdx_customers_id_localValue(const aValue: Integer); + function Getdelivery_nameValue: String; + procedure Setdelivery_nameValue(const aValue: String); + function Getdelivery_companyValue: String; + procedure Setdelivery_companyValue(const aValue: String); + function Getdelivery_street_addressValue: String; + procedure Setdelivery_street_addressValue(const aValue: String); + function Getdelivery_suburbValue: String; + procedure Setdelivery_suburbValue(const aValue: String); + function Getdelivery_cityValue: String; + procedure Setdelivery_cityValue(const aValue: String); + function Getdelivery_postcodeValue: String; + procedure Setdelivery_postcodeValue(const aValue: String); + function Getdelivery_stateValue: String; + procedure Setdelivery_stateValue(const aValue: String); + function Getdelivery_countryValue: String; + procedure Setdelivery_countryValue(const aValue: String); + function Getdelivery_telephoneValue: String; + procedure Setdelivery_telephoneValue(const aValue: String); + function Getlast_modifiedValue: DateTime; + procedure Setlast_modifiedValue(const aValue: DateTime); + function Getdate_purchasedValue: DateTime; + procedure Setdate_purchasedValue(const aValue: DateTime); + function Getorders_statusValue: Integer; + procedure Setorders_statusValue(const aValue: Integer); + function Getorders_date_finishedValue: DateTime; + procedure Setorders_date_finishedValue(const aValue: DateTime); + function GetcommentsValue: IROStrings; + procedure SetcommentsValue(const aValue: IROStrings); + + + { Properties } + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property rdx_orders_id_local: Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property rdx_customers_id_local: Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property delivery_name: String read Getdelivery_nameValue write Setdelivery_nameValue; + property delivery_company: String read Getdelivery_companyValue write Setdelivery_companyValue; + property delivery_street_address: String read Getdelivery_street_addressValue write Setdelivery_street_addressValue; + property delivery_suburb: String read Getdelivery_suburbValue write Setdelivery_suburbValue; + property delivery_city: String read Getdelivery_cityValue write Setdelivery_cityValue; + property delivery_postcode: String read Getdelivery_postcodeValue write Setdelivery_postcodeValue; + property delivery_state: String read Getdelivery_stateValue write Setdelivery_stateValue; + property delivery_country: String read Getdelivery_countryValue write Setdelivery_countryValue; + property delivery_telephone: String read Getdelivery_telephoneValue write Setdelivery_telephoneValue; + property last_modified: DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property date_purchased: DateTime read Getdate_purchasedValue write Setdate_purchasedValue; + property orders_status: Integer read Getorders_statusValue write Setorders_statusValue; + property orders_date_finished: DateTime read Getorders_date_finishedValue write Setorders_date_finishedValue; + property comments: IROStrings read GetcommentsValue write SetcommentsValue; + end; + + { Tosc_OrdersDataTableRules } + Tosc_OrdersDataTableRules = class(TDADataTableRules, Iosc_Orders) + private + protected + { Property getters and setters } + function Getorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getrdx_orders_id_localValue: Integer; virtual; + procedure Setrdx_orders_id_localValue(const aValue: Integer); virtual; + function Getcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getrdx_customers_id_localValue: Integer; virtual; + procedure Setrdx_customers_id_localValue(const aValue: Integer); virtual; + function Getdelivery_nameValue: String; virtual; + procedure Setdelivery_nameValue(const aValue: String); virtual; + function Getdelivery_companyValue: String; virtual; + procedure Setdelivery_companyValue(const aValue: String); virtual; + function Getdelivery_street_addressValue: String; virtual; + procedure Setdelivery_street_addressValue(const aValue: String); virtual; + function Getdelivery_suburbValue: String; virtual; + procedure Setdelivery_suburbValue(const aValue: String); virtual; + function Getdelivery_cityValue: String; virtual; + procedure Setdelivery_cityValue(const aValue: String); virtual; + function Getdelivery_postcodeValue: String; virtual; + procedure Setdelivery_postcodeValue(const aValue: String); virtual; + function Getdelivery_stateValue: String; virtual; + procedure Setdelivery_stateValue(const aValue: String); virtual; + function Getdelivery_countryValue: String; virtual; + procedure Setdelivery_countryValue(const aValue: String); virtual; + function Getdelivery_telephoneValue: String; virtual; + procedure Setdelivery_telephoneValue(const aValue: String); virtual; + function Getlast_modifiedValue: DateTime; virtual; + procedure Setlast_modifiedValue(const aValue: DateTime); virtual; + function Getdate_purchasedValue: DateTime; virtual; + procedure Setdate_purchasedValue(const aValue: DateTime); virtual; + function Getorders_statusValue: Integer; virtual; + procedure Setorders_statusValue(const aValue: Integer); virtual; + function Getorders_date_finishedValue: DateTime; virtual; + procedure Setorders_date_finishedValue(const aValue: DateTime); virtual; + function GetcommentsValue: IROStrings; virtual; + procedure SetcommentsValue(const aValue: IROStrings); virtual; + + { Properties } + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property rdx_orders_id_local: Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property customers_id: Integer read Getcustomers_idValue write Setcustomers_idValue; + property rdx_customers_id_local: Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property delivery_name: String read Getdelivery_nameValue write Setdelivery_nameValue; + property delivery_company: String read Getdelivery_companyValue write Setdelivery_companyValue; + property delivery_street_address: String read Getdelivery_street_addressValue write Setdelivery_street_addressValue; + property delivery_suburb: String read Getdelivery_suburbValue write Setdelivery_suburbValue; + property delivery_city: String read Getdelivery_cityValue write Setdelivery_cityValue; + property delivery_postcode: String read Getdelivery_postcodeValue write Setdelivery_postcodeValue; + property delivery_state: String read Getdelivery_stateValue write Setdelivery_stateValue; + property delivery_country: String read Getdelivery_countryValue write Setdelivery_countryValue; + property delivery_telephone: String read Getdelivery_telephoneValue write Setdelivery_telephoneValue; + property last_modified: DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property date_purchased: DateTime read Getdate_purchasedValue write Setdate_purchasedValue; + property orders_status: Integer read Getorders_statusValue write Setorders_statusValue; + property orders_date_finished: DateTime read Getorders_date_finishedValue write Setorders_date_finishedValue; + property comments: IROStrings read GetcommentsValue write SetcommentsValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_Orders_products } + Iosc_Orders_products = interface(IDAStronglyTypedDataTable) + ['{36688918-F3C6-42D4-A82D-EBD15E726366}'] + { Property getters and setters } + function Getorders_products_idValue: Integer; + procedure Setorders_products_idValue(const aValue: Integer); + function Getorders_idValue: Integer; + procedure Setorders_idValue(const aValue: Integer); + function Getproducts_idValue: Integer; + procedure Setproducts_idValue(const aValue: Integer); + function Getrdx_products_id_localValue: Integer; + procedure Setrdx_products_id_localValue(const aValue: Integer); + function Getproducts_modelValue: String; + procedure Setproducts_modelValue(const aValue: String); + function Getproducts_nameValue: String; + procedure Setproducts_nameValue(const aValue: String); + function Getproducts_priceValue: Float; + procedure Setproducts_priceValue(const aValue: Float); + function Getfinal_priceValue: Float; + procedure Setfinal_priceValue(const aValue: Float); + function Getproducts_taxValue: Float; + procedure Setproducts_taxValue(const aValue: Float); + function Getproducts_quantityValue: Integer; + procedure Setproducts_quantityValue(const aValue: Integer); + + + { Properties } + property orders_products_id: Integer read Getorders_products_idValue write Setorders_products_idValue; + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property products_id: Integer read Getproducts_idValue write Setproducts_idValue; + property rdx_products_id_local: Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + property products_model: String read Getproducts_modelValue write Setproducts_modelValue; + property products_name: String read Getproducts_nameValue write Setproducts_nameValue; + property products_price: Float read Getproducts_priceValue write Setproducts_priceValue; + property final_price: Float read Getfinal_priceValue write Setfinal_priceValue; + property products_tax: Float read Getproducts_taxValue write Setproducts_taxValue; + property products_quantity: Integer read Getproducts_quantityValue write Setproducts_quantityValue; + end; + + { Tosc_Orders_productsDataTableRules } + Tosc_Orders_productsDataTableRules = class(TDADataTableRules, Iosc_Orders_products) + private + protected + { Property getters and setters } + function Getorders_products_idValue: Integer; virtual; + procedure Setorders_products_idValue(const aValue: Integer); virtual; + function Getorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getproducts_idValue: Integer; virtual; + procedure Setproducts_idValue(const aValue: Integer); virtual; + function Getrdx_products_id_localValue: Integer; virtual; + procedure Setrdx_products_id_localValue(const aValue: Integer); virtual; + function Getproducts_modelValue: String; virtual; + procedure Setproducts_modelValue(const aValue: String); virtual; + function Getproducts_nameValue: String; virtual; + procedure Setproducts_nameValue(const aValue: String); virtual; + function Getproducts_priceValue: Float; virtual; + procedure Setproducts_priceValue(const aValue: Float); virtual; + function Getfinal_priceValue: Float; virtual; + procedure Setfinal_priceValue(const aValue: Float); virtual; + function Getproducts_taxValue: Float; virtual; + procedure Setproducts_taxValue(const aValue: Float); virtual; + function Getproducts_quantityValue: Integer; virtual; + procedure Setproducts_quantityValue(const aValue: Integer); virtual; + + { Properties } + property orders_products_id: Integer read Getorders_products_idValue write Setorders_products_idValue; + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property products_id: Integer read Getproducts_idValue write Setproducts_idValue; + property rdx_products_id_local: Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + property products_model: String read Getproducts_modelValue write Setproducts_modelValue; + property products_name: String read Getproducts_nameValue write Setproducts_nameValue; + property products_price: Float read Getproducts_priceValue write Setproducts_priceValue; + property final_price: Float read Getfinal_priceValue write Setfinal_priceValue; + property products_tax: Float read Getproducts_taxValue write Setproducts_taxValue; + property products_quantity: Integer read Getproducts_quantityValue write Setproducts_quantityValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { Iosc_Orders_status_history } + Iosc_Orders_status_history = interface(IDAStronglyTypedDataTable) + ['{9AFA2FB7-BE93-4AC7-9C59-4CD7D9BDD425}'] + { Property getters and setters } + function Getorders_status_history_idValue: Integer; + procedure Setorders_status_history_idValue(const aValue: Integer); + function Getorders_idValue: Integer; + procedure Setorders_idValue(const aValue: Integer); + function Getrdx_orders_id_localValue: Integer; + procedure Setrdx_orders_id_localValue(const aValue: Integer); + function Getorders_status_idValue: Integer; + procedure Setorders_status_idValue(const aValue: Integer); + function Getdate_addedValue: DateTime; + procedure Setdate_addedValue(const aValue: DateTime); + function Getcustomer_notifiedValue: Integer; + procedure Setcustomer_notifiedValue(const aValue: Integer); + function GetcommentsValue: IROStrings; + procedure SetcommentsValue(const aValue: IROStrings); + + + { Properties } + property orders_status_history_id: Integer read Getorders_status_history_idValue write Setorders_status_history_idValue; + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property rdx_orders_id_local: Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property orders_status_id: Integer read Getorders_status_idValue write Setorders_status_idValue; + property date_added: DateTime read Getdate_addedValue write Setdate_addedValue; + property customer_notified: Integer read Getcustomer_notifiedValue write Setcustomer_notifiedValue; + property comments: IROStrings read GetcommentsValue write SetcommentsValue; + end; + + { Tosc_Orders_status_historyDataTableRules } + Tosc_Orders_status_historyDataTableRules = class(TDADataTableRules, Iosc_Orders_status_history) + private + protected + { Property getters and setters } + function Getorders_status_history_idValue: Integer; virtual; + procedure Setorders_status_history_idValue(const aValue: Integer); virtual; + function Getorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getrdx_orders_id_localValue: Integer; virtual; + procedure Setrdx_orders_id_localValue(const aValue: Integer); virtual; + function Getorders_status_idValue: Integer; virtual; + procedure Setorders_status_idValue(const aValue: Integer); virtual; + function Getdate_addedValue: DateTime; virtual; + procedure Setdate_addedValue(const aValue: DateTime); virtual; + function Getcustomer_notifiedValue: Integer; virtual; + procedure Setcustomer_notifiedValue(const aValue: Integer); virtual; + function GetcommentsValue: IROStrings; virtual; + procedure SetcommentsValue(const aValue: IROStrings); virtual; + + { Properties } + property orders_status_history_id: Integer read Getorders_status_history_idValue write Setorders_status_history_idValue; + property orders_id: Integer read Getorders_idValue write Setorders_idValue; + property rdx_orders_id_local: Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property orders_status_id: Integer read Getorders_status_idValue write Setorders_status_idValue; + property date_added: DateTime read Getdate_addedValue write Setdate_addedValue; + property customer_notified: Integer read Getcustomer_notifiedValue write Setcustomer_notifiedValue; + property comments: IROStrings read GetcommentsValue write SetcommentsValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ Tosc_CustomersDataTableRules } +constructor Tosc_CustomersDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_CustomersDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_id].AsInteger; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Customerscustomers_id].AsInteger := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_firstnameValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_firstname].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_firstnameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_firstname].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_lastnameValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_lastname].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_lastnameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_lastname].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_email_addressValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_email_address].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_email_addressValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_email_address].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_default_address_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_default_address_id].AsInteger; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_default_address_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Customerscustomers_default_address_id].AsInteger := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_telephoneValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_telephone].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_telephoneValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_telephone].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_faxValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_fax].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_faxValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_fax].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getcustomers_passwordValue: String; +begin + result := DataTable.Fields[idx_osc_Customerscustomers_password].AsString; +end; + +procedure Tosc_CustomersDataTableRules.Setcustomers_passwordValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Customerscustomers_password].AsString := aValue; +end; + +function Tosc_CustomersDataTableRules.Getrdx_customers_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Customersrdx_customers_id_local].AsInteger; +end; + +procedure Tosc_CustomersDataTableRules.Setrdx_customers_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Customersrdx_customers_id_local].AsInteger := aValue; +end; + +function Tosc_CustomersDataTableRules.Getdate_account_createdValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Customersdate_account_created].AsDateTime; +end; + +procedure Tosc_CustomersDataTableRules.Setdate_account_createdValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Customersdate_account_created].AsDateTime := aValue; +end; + +function Tosc_CustomersDataTableRules.Getdate_account_last_modifiedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Customersdate_account_last_modified].AsDateTime; +end; + +procedure Tosc_CustomersDataTableRules.Setdate_account_last_modifiedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Customersdate_account_last_modified].AsDateTime := aValue; +end; + + +{ TGetLastIDDataTableRules } +constructor TGetLastIDDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGetLastIDDataTableRules.Destroy; +begin + inherited; +end; + +function TGetLastIDDataTableRules.Getlast_idValue: Integer; +begin + result := DataTable.Fields[idx_GetLastIDlast_id].AsInteger; +end; + +procedure TGetLastIDDataTableRules.Setlast_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_GetLastIDlast_id].AsInteger := aValue; +end; + + +{ Tosc_AddressBookDataTableRules } +constructor Tosc_AddressBookDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_AddressBookDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_AddressBookDataTableRules.Getaddress_book_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_AddressBookaddress_book_id].AsInteger; +end; + +procedure Tosc_AddressBookDataTableRules.Setaddress_book_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_AddressBookaddress_book_id].AsInteger := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getcustomers_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_AddressBookcustomers_id].AsInteger; +end; + +procedure Tosc_AddressBookDataTableRules.Setcustomers_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_AddressBookcustomers_id].AsInteger := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_genderValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_gender].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_genderValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_gender].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_companyValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_company].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_companyValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_company].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_firstnameValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_firstname].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_firstnameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_firstname].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_lastnameValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_lastname].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_lastnameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_lastname].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_street_addressValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_street_address].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_street_addressValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_street_address].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_suburbValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_suburb].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_suburbValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_suburb].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_postcodeValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_postcode].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_postcodeValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_postcode].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_cityValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_city].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_cityValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_city].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_stateValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_state].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_stateValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_state].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_country_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_country_id].AsInteger; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_country_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_AddressBookentry_country_id].AsInteger := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_zone_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_zone_id].AsInteger; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_zone_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_AddressBookentry_zone_id].AsInteger := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getentry_telephoneValue: String; +begin + result := DataTable.Fields[idx_osc_AddressBookentry_telephone].AsString; +end; + +procedure Tosc_AddressBookDataTableRules.Setentry_telephoneValue(const aValue: String); +begin + DataTable.Fields[idx_osc_AddressBookentry_telephone].AsString := aValue; +end; + +function Tosc_AddressBookDataTableRules.Getrdx_address_book_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_AddressBookrdx_address_book_id_local].AsInteger; +end; + +procedure Tosc_AddressBookDataTableRules.Setrdx_address_book_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_AddressBookrdx_address_book_id_local].AsInteger := aValue; +end; + + +{ TTiendaWebDataTableRules } +constructor TTiendaWebDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TTiendaWebDataTableRules.Destroy; +begin + inherited; +end; + +function TTiendaWebDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_TiendaWebID].AsInteger; +end; + +procedure TTiendaWebDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiendaWebID].AsInteger := aValue; +end; + +function TTiendaWebDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_TiendaWebID_EMPRESA].AsInteger; +end; + +procedure TTiendaWebDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiendaWebID_EMPRESA].AsInteger := aValue; +end; + +function TTiendaWebDataTableRules.GetTIENDA_ACTIVAValue: Integer; +begin + result := DataTable.Fields[idx_TiendaWebTIENDA_ACTIVA].AsInteger; +end; + +procedure TTiendaWebDataTableRules.SetTIENDA_ACTIVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiendaWebTIENDA_ACTIVA].AsInteger := aValue; +end; + +function TTiendaWebDataTableRules.GetBDSERVERValue: String; +begin + result := DataTable.Fields[idx_TiendaWebBDSERVER].AsString; +end; + +procedure TTiendaWebDataTableRules.SetBDSERVERValue(const aValue: String); +begin + DataTable.Fields[idx_TiendaWebBDSERVER].AsString := aValue; +end; + +function TTiendaWebDataTableRules.GetBDPORTValue: String; +begin + result := DataTable.Fields[idx_TiendaWebBDPORT].AsString; +end; + +procedure TTiendaWebDataTableRules.SetBDPORTValue(const aValue: String); +begin + DataTable.Fields[idx_TiendaWebBDPORT].AsString := aValue; +end; + +function TTiendaWebDataTableRules.GetBDNAMEValue: String; +begin + result := DataTable.Fields[idx_TiendaWebBDNAME].AsString; +end; + +procedure TTiendaWebDataTableRules.SetBDNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_TiendaWebBDNAME].AsString := aValue; +end; + +function TTiendaWebDataTableRules.GetBDUSERValue: String; +begin + result := DataTable.Fields[idx_TiendaWebBDUSER].AsString; +end; + +procedure TTiendaWebDataTableRules.SetBDUSERValue(const aValue: String); +begin + DataTable.Fields[idx_TiendaWebBDUSER].AsString := aValue; +end; + +function TTiendaWebDataTableRules.GetBDPASSValue: String; +begin + result := DataTable.Fields[idx_TiendaWebBDPASS].AsString; +end; + +procedure TTiendaWebDataTableRules.SetBDPASSValue(const aValue: String); +begin + DataTable.Fields[idx_TiendaWebBDPASS].AsString := aValue; +end; + +function TTiendaWebDataTableRules.GetULTIMA_ACTUALIZACIONValue: DateTime; +begin + result := DataTable.Fields[idx_TiendaWebULTIMA_ACTUALIZACION].AsDateTime; +end; + +procedure TTiendaWebDataTableRules.SetULTIMA_ACTUALIZACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_TiendaWebULTIMA_ACTUALIZACION].AsDateTime := aValue; +end; + + +{ Tosc_ManufacturersDataTableRules } +constructor Tosc_ManufacturersDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_ManufacturersDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_ManufacturersDataTableRules.Getmanufacturers_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Manufacturersmanufacturers_id].AsInteger; +end; + +procedure Tosc_ManufacturersDataTableRules.Setmanufacturers_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Manufacturersmanufacturers_id].AsInteger := aValue; +end; + +function Tosc_ManufacturersDataTableRules.Getmanufacturers_nameValue: String; +begin + result := DataTable.Fields[idx_osc_Manufacturersmanufacturers_name].AsString; +end; + +procedure Tosc_ManufacturersDataTableRules.Setmanufacturers_nameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Manufacturersmanufacturers_name].AsString := aValue; +end; + +function Tosc_ManufacturersDataTableRules.Getmanufacturers_imageValue: String; +begin + result := DataTable.Fields[idx_osc_Manufacturersmanufacturers_image].AsString; +end; + +procedure Tosc_ManufacturersDataTableRules.Setmanufacturers_imageValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Manufacturersmanufacturers_image].AsString := aValue; +end; + +function Tosc_ManufacturersDataTableRules.Getdate_addedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Manufacturersdate_added].AsDateTime; +end; + +procedure Tosc_ManufacturersDataTableRules.Setdate_addedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Manufacturersdate_added].AsDateTime := aValue; +end; + +function Tosc_ManufacturersDataTableRules.Getlast_modifiedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Manufacturerslast_modified].AsDateTime; +end; + +procedure Tosc_ManufacturersDataTableRules.Setlast_modifiedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Manufacturerslast_modified].AsDateTime := aValue; +end; + +function Tosc_ManufacturersDataTableRules.Getrdx_manufacturers_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Manufacturersrdx_manufacturers_id_local].AsInteger; +end; + +procedure Tosc_ManufacturersDataTableRules.Setrdx_manufacturers_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Manufacturersrdx_manufacturers_id_local].AsInteger := aValue; +end; + + +{ Tosc_LanguagesDataTableRules } +constructor Tosc_LanguagesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_LanguagesDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_LanguagesDataTableRules.Getlanguages_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Languageslanguages_id].AsInteger; +end; + +procedure Tosc_LanguagesDataTableRules.Setlanguages_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Languageslanguages_id].AsInteger := aValue; +end; + +function Tosc_LanguagesDataTableRules.GetnameValue: String; +begin + result := DataTable.Fields[idx_osc_Languagesname].AsString; +end; + +procedure Tosc_LanguagesDataTableRules.SetnameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Languagesname].AsString := aValue; +end; + +function Tosc_LanguagesDataTableRules.GetcodeValue: String; +begin + result := DataTable.Fields[idx_osc_Languagescode].AsString; +end; + +procedure Tosc_LanguagesDataTableRules.SetcodeValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Languagescode].AsString := aValue; +end; + +function Tosc_LanguagesDataTableRules.GetimageValue: String; +begin + result := DataTable.Fields[idx_osc_Languagesimage].AsString; +end; + +procedure Tosc_LanguagesDataTableRules.SetimageValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Languagesimage].AsString := aValue; +end; + +function Tosc_LanguagesDataTableRules.GetdirectoryValue: String; +begin + result := DataTable.Fields[idx_osc_Languagesdirectory].AsString; +end; + +procedure Tosc_LanguagesDataTableRules.SetdirectoryValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Languagesdirectory].AsString := aValue; +end; + +function Tosc_LanguagesDataTableRules.Getsort_orderValue: Integer; +begin + result := DataTable.Fields[idx_osc_Languagessort_order].AsInteger; +end; + +procedure Tosc_LanguagesDataTableRules.Setsort_orderValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Languagessort_order].AsInteger := aValue; +end; + + +{ Tosc_ProductsDataTableRules } +constructor Tosc_ProductsDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_ProductsDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_ProductsDataTableRules.Getproducts_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Productsproducts_id].AsInteger; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Productsproducts_id].AsInteger := aValue; +end; + +function Tosc_ProductsDataTableRules.Getproducts_nameValue: String; +begin + result := DataTable.Fields[idx_osc_Productsproducts_name].AsString; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_nameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Productsproducts_name].AsString := aValue; +end; + +function Tosc_ProductsDataTableRules.Getproducts_descriptionValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_osc_Productsproducts_description].AsString; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_descriptionValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_osc_Productsproducts_description].AsString := aValue.Text; +end; + +function Tosc_ProductsDataTableRules.Getproducts_modelValue: String; +begin + result := DataTable.Fields[idx_osc_Productsproducts_model].AsString; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_modelValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Productsproducts_model].AsString := aValue; +end; + +function Tosc_ProductsDataTableRules.Getproducts_date_addedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Productsproducts_date_added].AsDateTime; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_date_addedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Productsproducts_date_added].AsDateTime := aValue; +end; + +function Tosc_ProductsDataTableRules.Getproducts_last_modifiedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Productsproducts_last_modified].AsDateTime; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_last_modifiedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Productsproducts_last_modified].AsDateTime := aValue; +end; + +function Tosc_ProductsDataTableRules.Getproducts_statusValue: Integer; +begin + result := DataTable.Fields[idx_osc_Productsproducts_status].AsInteger; +end; + +procedure Tosc_ProductsDataTableRules.Setproducts_statusValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Productsproducts_status].AsInteger := aValue; +end; + +function Tosc_ProductsDataTableRules.Getmanufacturers_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Productsmanufacturers_id].AsInteger; +end; + +procedure Tosc_ProductsDataTableRules.Setmanufacturers_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Productsmanufacturers_id].AsInteger := aValue; +end; + +function Tosc_ProductsDataTableRules.Getrdx_products_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Productsrdx_products_id_local].AsInteger; +end; + +procedure Tosc_ProductsDataTableRules.Setrdx_products_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Productsrdx_products_id_local].AsInteger := aValue; +end; + + +{ Tosc_OrdersDataTableRules } +constructor Tosc_OrdersDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_OrdersDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_OrdersDataTableRules.Getorders_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Ordersorders_id].AsInteger; +end; + +procedure Tosc_OrdersDataTableRules.Setorders_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Ordersorders_id].AsInteger := aValue; +end; + +function Tosc_OrdersDataTableRules.Getrdx_orders_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Ordersrdx_orders_id_local].AsInteger; +end; + +procedure Tosc_OrdersDataTableRules.Setrdx_orders_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Ordersrdx_orders_id_local].AsInteger := aValue; +end; + +function Tosc_OrdersDataTableRules.Getcustomers_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orderscustomers_id].AsInteger; +end; + +procedure Tosc_OrdersDataTableRules.Setcustomers_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orderscustomers_id].AsInteger := aValue; +end; + +function Tosc_OrdersDataTableRules.Getrdx_customers_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Ordersrdx_customers_id_local].AsInteger; +end; + +procedure Tosc_OrdersDataTableRules.Setrdx_customers_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Ordersrdx_customers_id_local].AsInteger := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_nameValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_name].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_nameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_name].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_companyValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_company].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_companyValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_company].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_street_addressValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_street_address].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_street_addressValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_street_address].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_suburbValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_suburb].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_suburbValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_suburb].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_cityValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_city].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_cityValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_city].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_postcodeValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_postcode].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_postcodeValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_postcode].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_stateValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_state].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_stateValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_state].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_countryValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_country].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_countryValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_country].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdelivery_telephoneValue: String; +begin + result := DataTable.Fields[idx_osc_Ordersdelivery_telephone].AsString; +end; + +procedure Tosc_OrdersDataTableRules.Setdelivery_telephoneValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Ordersdelivery_telephone].AsString := aValue; +end; + +function Tosc_OrdersDataTableRules.Getlast_modifiedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Orderslast_modified].AsDateTime; +end; + +procedure Tosc_OrdersDataTableRules.Setlast_modifiedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Orderslast_modified].AsDateTime := aValue; +end; + +function Tosc_OrdersDataTableRules.Getdate_purchasedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Ordersdate_purchased].AsDateTime; +end; + +procedure Tosc_OrdersDataTableRules.Setdate_purchasedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Ordersdate_purchased].AsDateTime := aValue; +end; + +function Tosc_OrdersDataTableRules.Getorders_statusValue: Integer; +begin + result := DataTable.Fields[idx_osc_Ordersorders_status].AsInteger; +end; + +procedure Tosc_OrdersDataTableRules.Setorders_statusValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Ordersorders_status].AsInteger := aValue; +end; + +function Tosc_OrdersDataTableRules.Getorders_date_finishedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Ordersorders_date_finished].AsDateTime; +end; + +procedure Tosc_OrdersDataTableRules.Setorders_date_finishedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Ordersorders_date_finished].AsDateTime := aValue; +end; + +function Tosc_OrdersDataTableRules.GetcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_osc_Orderscomments].AsString; +end; + +procedure Tosc_OrdersDataTableRules.SetcommentsValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_osc_Orderscomments].AsString := aValue.Text; +end; + + +{ Tosc_Orders_productsDataTableRules } +constructor Tosc_Orders_productsDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_Orders_productsDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_Orders_productsDataTableRules.Getorders_products_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_productsorders_products_id].AsInteger; +end; + +procedure Tosc_Orders_productsDataTableRules.Setorders_products_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_productsorders_products_id].AsInteger := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getorders_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_productsorders_id].AsInteger; +end; + +procedure Tosc_Orders_productsDataTableRules.Setorders_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_productsorders_id].AsInteger := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_id].AsInteger; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_id].AsInteger := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getrdx_products_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_productsrdx_products_id_local].AsInteger; +end; + +procedure Tosc_Orders_productsDataTableRules.Setrdx_products_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_productsrdx_products_id_local].AsInteger := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_modelValue: String; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_model].AsString; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_modelValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_model].AsString := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_nameValue: String; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_name].AsString; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_nameValue(const aValue: String); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_name].AsString := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_priceValue: Float; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_price].AsFloat; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_priceValue(const aValue: Float); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_price].AsFloat := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getfinal_priceValue: Float; +begin + result := DataTable.Fields[idx_osc_Orders_productsfinal_price].AsFloat; +end; + +procedure Tosc_Orders_productsDataTableRules.Setfinal_priceValue(const aValue: Float); +begin + DataTable.Fields[idx_osc_Orders_productsfinal_price].AsFloat := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_taxValue: Float; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_tax].AsFloat; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_taxValue(const aValue: Float); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_tax].AsFloat := aValue; +end; + +function Tosc_Orders_productsDataTableRules.Getproducts_quantityValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_productsproducts_quantity].AsInteger; +end; + +procedure Tosc_Orders_productsDataTableRules.Setproducts_quantityValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_productsproducts_quantity].AsInteger := aValue; +end; + + +{ Tosc_Orders_status_historyDataTableRules } +constructor Tosc_Orders_status_historyDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor Tosc_Orders_status_historyDataTableRules.Destroy; +begin + inherited; +end; + +function Tosc_Orders_status_historyDataTableRules.Getorders_status_history_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_status_historyorders_status_history_id].AsInteger; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setorders_status_history_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_status_historyorders_status_history_id].AsInteger := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.Getorders_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_status_historyorders_id].AsInteger; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setorders_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_status_historyorders_id].AsInteger := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.Getrdx_orders_id_localValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_status_historyrdx_orders_id_local].AsInteger; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setrdx_orders_id_localValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_status_historyrdx_orders_id_local].AsInteger := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.Getorders_status_idValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_status_historyorders_status_id].AsInteger; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setorders_status_idValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_status_historyorders_status_id].AsInteger := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.Getdate_addedValue: DateTime; +begin + result := DataTable.Fields[idx_osc_Orders_status_historydate_added].AsDateTime; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setdate_addedValue(const aValue: DateTime); +begin + DataTable.Fields[idx_osc_Orders_status_historydate_added].AsDateTime := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.Getcustomer_notifiedValue: Integer; +begin + result := DataTable.Fields[idx_osc_Orders_status_historycustomer_notified].AsInteger; +end; + +procedure Tosc_Orders_status_historyDataTableRules.Setcustomer_notifiedValue(const aValue: Integer); +begin + DataTable.Fields[idx_osc_Orders_status_historycustomer_notified].AsInteger := aValue; +end; + +function Tosc_Orders_status_historyDataTableRules.GetcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_osc_Orders_status_historycomments].AsString; +end; + +procedure Tosc_Orders_status_historyDataTableRules.SetcommentsValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_osc_Orders_status_historycomments].AsString := aValue.Text; +end; + + +initialization + RegisterDataTableRules(RID_osc_Customers, Tosc_CustomersDataTableRules); + RegisterDataTableRules(RID_GetLastID, TGetLastIDDataTableRules); + RegisterDataTableRules(RID_osc_AddressBook, Tosc_AddressBookDataTableRules); + RegisterDataTableRules(RID_TiendaWeb, TTiendaWebDataTableRules); + RegisterDataTableRules(RID_osc_Manufacturers, Tosc_ManufacturersDataTableRules); + RegisterDataTableRules(RID_osc_Languages, Tosc_LanguagesDataTableRules); + RegisterDataTableRules(RID_osc_Products, Tosc_ProductsDataTableRules); + RegisterDataTableRules(RID_osc_Orders, Tosc_OrdersDataTableRules); + RegisterDataTableRules(RID_osc_Orders_products, Tosc_Orders_productsDataTableRules); + RegisterDataTableRules(RID_osc_Orders_status_history, Tosc_Orders_status_historyDataTableRules); + +end. diff --git a/Source/Modulos/Tienda web/Model/schTiendaWebServer_Intf.pas b/Source/Modulos/Tienda web/Model/schTiendaWebServer_Intf.pas new file mode 100644 index 00000000..a8d60d88 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/schTiendaWebServer_Intf.pas @@ -0,0 +1,2411 @@ +unit schTiendaWebServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schTiendaWebClient_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_osc_CustomersDelta = '{65A7F9FC-6287-459F-98D2-7DC4C592A465}'; + RID_GetLastIDDelta = '{E3F4D03F-4AB5-42C6-9F4D-C61637E2C354}'; + RID_osc_AddressBookDelta = '{2325048F-7596-469A-9B3D-D5934A5174FD}'; + RID_TiendaWebDelta = '{A3B09C4B-A446-4FE6-8DE9-E0091272283F}'; + RID_osc_ManufacturersDelta = '{26106CBF-B5D0-47B4-9BCA-7BE49FC8E911}'; + RID_osc_LanguagesDelta = '{572746C7-6820-4601-BF1C-5A075CB78477}'; + RID_osc_ProductsDelta = '{B2E1F73E-59BC-457C-944D-D83E63CFDA7A}'; + RID_osc_OrdersDelta = '{F8C10D86-C5C9-40C8-8AF5-0E7B34E0BBA0}'; + RID_osc_Orders_productsDelta = '{B1A05364-00F9-4B59-95AA-70836D2F797C}'; + RID_osc_Orders_status_historyDelta = '{CA538D11-0CD2-4869-8EFB-135FEAAB43E1}'; + +type + { Iosc_CustomersDelta } + Iosc_CustomersDelta = interface(Iosc_Customers) + ['{65A7F9FC-6287-459F-98D2-7DC4C592A465}'] + { Property getters and setters } + function GetOldcustomers_idValue : Integer; + function GetOldcustomers_firstnameValue : String; + function GetOldcustomers_lastnameValue : String; + function GetOldcustomers_email_addressValue : String; + function GetOldcustomers_default_address_idValue : Integer; + function GetOldcustomers_telephoneValue : String; + function GetOldcustomers_faxValue : String; + function GetOldcustomers_passwordValue : String; + function GetOldrdx_customers_id_localValue : Integer; + function GetOlddate_account_createdValue : DateTime; + function GetOlddate_account_last_modifiedValue : DateTime; + + { Properties } + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property Oldcustomers_firstname : String read GetOldcustomers_firstnameValue; + property Oldcustomers_lastname : String read GetOldcustomers_lastnameValue; + property Oldcustomers_email_address : String read GetOldcustomers_email_addressValue; + property Oldcustomers_default_address_id : Integer read GetOldcustomers_default_address_idValue; + property Oldcustomers_telephone : String read GetOldcustomers_telephoneValue; + property Oldcustomers_fax : String read GetOldcustomers_faxValue; + property Oldcustomers_password : String read GetOldcustomers_passwordValue; + property Oldrdx_customers_id_local : Integer read GetOldrdx_customers_id_localValue; + property Olddate_account_created : DateTime read GetOlddate_account_createdValue; + property Olddate_account_last_modified : DateTime read GetOlddate_account_last_modifiedValue; + end; + + { Tosc_CustomersBusinessProcessorRules } + Tosc_CustomersBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Customers, Iosc_CustomersDelta) + private + protected + { Property getters and setters } + function Getcustomers_idValue: Integer; virtual; + function GetOldcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getcustomers_firstnameValue: String; virtual; + function GetOldcustomers_firstnameValue: String; virtual; + procedure Setcustomers_firstnameValue(const aValue: String); virtual; + function Getcustomers_lastnameValue: String; virtual; + function GetOldcustomers_lastnameValue: String; virtual; + procedure Setcustomers_lastnameValue(const aValue: String); virtual; + function Getcustomers_email_addressValue: String; virtual; + function GetOldcustomers_email_addressValue: String; virtual; + procedure Setcustomers_email_addressValue(const aValue: String); virtual; + function Getcustomers_default_address_idValue: Integer; virtual; + function GetOldcustomers_default_address_idValue: Integer; virtual; + procedure Setcustomers_default_address_idValue(const aValue: Integer); virtual; + function Getcustomers_telephoneValue: String; virtual; + function GetOldcustomers_telephoneValue: String; virtual; + procedure Setcustomers_telephoneValue(const aValue: String); virtual; + function Getcustomers_faxValue: String; virtual; + function GetOldcustomers_faxValue: String; virtual; + procedure Setcustomers_faxValue(const aValue: String); virtual; + function Getcustomers_passwordValue: String; virtual; + function GetOldcustomers_passwordValue: String; virtual; + procedure Setcustomers_passwordValue(const aValue: String); virtual; + function Getrdx_customers_id_localValue: Integer; virtual; + function GetOldrdx_customers_id_localValue: Integer; virtual; + procedure Setrdx_customers_id_localValue(const aValue: Integer); virtual; + function Getdate_account_createdValue: DateTime; virtual; + function GetOlddate_account_createdValue: DateTime; virtual; + procedure Setdate_account_createdValue(const aValue: DateTime); virtual; + function Getdate_account_last_modifiedValue: DateTime; virtual; + function GetOlddate_account_last_modifiedValue: DateTime; virtual; + procedure Setdate_account_last_modifiedValue(const aValue: DateTime); virtual; + + { Properties } + property customers_id : Integer read Getcustomers_idValue write Setcustomers_idValue; + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property customers_firstname : String read Getcustomers_firstnameValue write Setcustomers_firstnameValue; + property Oldcustomers_firstname : String read GetOldcustomers_firstnameValue; + property customers_lastname : String read Getcustomers_lastnameValue write Setcustomers_lastnameValue; + property Oldcustomers_lastname : String read GetOldcustomers_lastnameValue; + property customers_email_address : String read Getcustomers_email_addressValue write Setcustomers_email_addressValue; + property Oldcustomers_email_address : String read GetOldcustomers_email_addressValue; + property customers_default_address_id : Integer read Getcustomers_default_address_idValue write Setcustomers_default_address_idValue; + property Oldcustomers_default_address_id : Integer read GetOldcustomers_default_address_idValue; + property customers_telephone : String read Getcustomers_telephoneValue write Setcustomers_telephoneValue; + property Oldcustomers_telephone : String read GetOldcustomers_telephoneValue; + property customers_fax : String read Getcustomers_faxValue write Setcustomers_faxValue; + property Oldcustomers_fax : String read GetOldcustomers_faxValue; + property customers_password : String read Getcustomers_passwordValue write Setcustomers_passwordValue; + property Oldcustomers_password : String read GetOldcustomers_passwordValue; + property rdx_customers_id_local : Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property Oldrdx_customers_id_local : Integer read GetOldrdx_customers_id_localValue; + property date_account_created : DateTime read Getdate_account_createdValue write Setdate_account_createdValue; + property Olddate_account_created : DateTime read GetOlddate_account_createdValue; + property date_account_last_modified : DateTime read Getdate_account_last_modifiedValue write Setdate_account_last_modifiedValue; + property Olddate_account_last_modified : DateTime read GetOlddate_account_last_modifiedValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGetLastIDDelta } + IGetLastIDDelta = interface(IGetLastID) + ['{E3F4D03F-4AB5-42C6-9F4D-C61637E2C354}'] + { Property getters and setters } + function GetOldlast_idValue : Integer; + + { Properties } + property Oldlast_id : Integer read GetOldlast_idValue; + end; + + { TGetLastIDBusinessProcessorRules } + TGetLastIDBusinessProcessorRules = class(TDABusinessProcessorRules, IGetLastID, IGetLastIDDelta) + private + protected + { Property getters and setters } + function Getlast_idValue: Integer; virtual; + function GetOldlast_idValue: Integer; virtual; + procedure Setlast_idValue(const aValue: Integer); virtual; + + { Properties } + property last_id : Integer read Getlast_idValue write Setlast_idValue; + property Oldlast_id : Integer read GetOldlast_idValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_AddressBookDelta } + Iosc_AddressBookDelta = interface(Iosc_AddressBook) + ['{2325048F-7596-469A-9B3D-D5934A5174FD}'] + { Property getters and setters } + function GetOldaddress_book_idValue : Integer; + function GetOldcustomers_idValue : Integer; + function GetOldentry_genderValue : String; + function GetOldentry_companyValue : String; + function GetOldentry_firstnameValue : String; + function GetOldentry_lastnameValue : String; + function GetOldentry_street_addressValue : String; + function GetOldentry_suburbValue : String; + function GetOldentry_postcodeValue : String; + function GetOldentry_cityValue : String; + function GetOldentry_stateValue : String; + function GetOldentry_country_idValue : Integer; + function GetOldentry_zone_idValue : Integer; + function GetOldentry_telephoneValue : String; + function GetOldrdx_address_book_id_localValue : Integer; + + { Properties } + property Oldaddress_book_id : Integer read GetOldaddress_book_idValue; + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property Oldentry_gender : String read GetOldentry_genderValue; + property Oldentry_company : String read GetOldentry_companyValue; + property Oldentry_firstname : String read GetOldentry_firstnameValue; + property Oldentry_lastname : String read GetOldentry_lastnameValue; + property Oldentry_street_address : String read GetOldentry_street_addressValue; + property Oldentry_suburb : String read GetOldentry_suburbValue; + property Oldentry_postcode : String read GetOldentry_postcodeValue; + property Oldentry_city : String read GetOldentry_cityValue; + property Oldentry_state : String read GetOldentry_stateValue; + property Oldentry_country_id : Integer read GetOldentry_country_idValue; + property Oldentry_zone_id : Integer read GetOldentry_zone_idValue; + property Oldentry_telephone : String read GetOldentry_telephoneValue; + property Oldrdx_address_book_id_local : Integer read GetOldrdx_address_book_id_localValue; + end; + + { Tosc_AddressBookBusinessProcessorRules } + Tosc_AddressBookBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_AddressBook, Iosc_AddressBookDelta) + private + protected + { Property getters and setters } + function Getaddress_book_idValue: Integer; virtual; + function GetOldaddress_book_idValue: Integer; virtual; + procedure Setaddress_book_idValue(const aValue: Integer); virtual; + function Getcustomers_idValue: Integer; virtual; + function GetOldcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getentry_genderValue: String; virtual; + function GetOldentry_genderValue: String; virtual; + procedure Setentry_genderValue(const aValue: String); virtual; + function Getentry_companyValue: String; virtual; + function GetOldentry_companyValue: String; virtual; + procedure Setentry_companyValue(const aValue: String); virtual; + function Getentry_firstnameValue: String; virtual; + function GetOldentry_firstnameValue: String; virtual; + procedure Setentry_firstnameValue(const aValue: String); virtual; + function Getentry_lastnameValue: String; virtual; + function GetOldentry_lastnameValue: String; virtual; + procedure Setentry_lastnameValue(const aValue: String); virtual; + function Getentry_street_addressValue: String; virtual; + function GetOldentry_street_addressValue: String; virtual; + procedure Setentry_street_addressValue(const aValue: String); virtual; + function Getentry_suburbValue: String; virtual; + function GetOldentry_suburbValue: String; virtual; + procedure Setentry_suburbValue(const aValue: String); virtual; + function Getentry_postcodeValue: String; virtual; + function GetOldentry_postcodeValue: String; virtual; + procedure Setentry_postcodeValue(const aValue: String); virtual; + function Getentry_cityValue: String; virtual; + function GetOldentry_cityValue: String; virtual; + procedure Setentry_cityValue(const aValue: String); virtual; + function Getentry_stateValue: String; virtual; + function GetOldentry_stateValue: String; virtual; + procedure Setentry_stateValue(const aValue: String); virtual; + function Getentry_country_idValue: Integer; virtual; + function GetOldentry_country_idValue: Integer; virtual; + procedure Setentry_country_idValue(const aValue: Integer); virtual; + function Getentry_zone_idValue: Integer; virtual; + function GetOldentry_zone_idValue: Integer; virtual; + procedure Setentry_zone_idValue(const aValue: Integer); virtual; + function Getentry_telephoneValue: String; virtual; + function GetOldentry_telephoneValue: String; virtual; + procedure Setentry_telephoneValue(const aValue: String); virtual; + function Getrdx_address_book_id_localValue: Integer; virtual; + function GetOldrdx_address_book_id_localValue: Integer; virtual; + procedure Setrdx_address_book_id_localValue(const aValue: Integer); virtual; + + { Properties } + property address_book_id : Integer read Getaddress_book_idValue write Setaddress_book_idValue; + property Oldaddress_book_id : Integer read GetOldaddress_book_idValue; + property customers_id : Integer read Getcustomers_idValue write Setcustomers_idValue; + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property entry_gender : String read Getentry_genderValue write Setentry_genderValue; + property Oldentry_gender : String read GetOldentry_genderValue; + property entry_company : String read Getentry_companyValue write Setentry_companyValue; + property Oldentry_company : String read GetOldentry_companyValue; + property entry_firstname : String read Getentry_firstnameValue write Setentry_firstnameValue; + property Oldentry_firstname : String read GetOldentry_firstnameValue; + property entry_lastname : String read Getentry_lastnameValue write Setentry_lastnameValue; + property Oldentry_lastname : String read GetOldentry_lastnameValue; + property entry_street_address : String read Getentry_street_addressValue write Setentry_street_addressValue; + property Oldentry_street_address : String read GetOldentry_street_addressValue; + property entry_suburb : String read Getentry_suburbValue write Setentry_suburbValue; + property Oldentry_suburb : String read GetOldentry_suburbValue; + property entry_postcode : String read Getentry_postcodeValue write Setentry_postcodeValue; + property Oldentry_postcode : String read GetOldentry_postcodeValue; + property entry_city : String read Getentry_cityValue write Setentry_cityValue; + property Oldentry_city : String read GetOldentry_cityValue; + property entry_state : String read Getentry_stateValue write Setentry_stateValue; + property Oldentry_state : String read GetOldentry_stateValue; + property entry_country_id : Integer read Getentry_country_idValue write Setentry_country_idValue; + property Oldentry_country_id : Integer read GetOldentry_country_idValue; + property entry_zone_id : Integer read Getentry_zone_idValue write Setentry_zone_idValue; + property Oldentry_zone_id : Integer read GetOldentry_zone_idValue; + property entry_telephone : String read Getentry_telephoneValue write Setentry_telephoneValue; + property Oldentry_telephone : String read GetOldentry_telephoneValue; + property rdx_address_book_id_local : Integer read Getrdx_address_book_id_localValue write Setrdx_address_book_id_localValue; + property Oldrdx_address_book_id_local : Integer read GetOldrdx_address_book_id_localValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { ITiendaWebDelta } + ITiendaWebDelta = interface(ITiendaWeb) + ['{A3B09C4B-A446-4FE6-8DE9-E0091272283F}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldTIENDA_ACTIVAValue : Integer; + function GetOldBDSERVERValue : String; + function GetOldBDPORTValue : String; + function GetOldBDNAMEValue : String; + function GetOldBDUSERValue : String; + function GetOldBDPASSValue : String; + function GetOldULTIMA_ACTUALIZACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldTIENDA_ACTIVA : Integer read GetOldTIENDA_ACTIVAValue; + property OldBDSERVER : String read GetOldBDSERVERValue; + property OldBDPORT : String read GetOldBDPORTValue; + property OldBDNAME : String read GetOldBDNAMEValue; + property OldBDUSER : String read GetOldBDUSERValue; + property OldBDPASS : String read GetOldBDPASSValue; + property OldULTIMA_ACTUALIZACION : DateTime read GetOldULTIMA_ACTUALIZACIONValue; + end; + + { TTiendaWebBusinessProcessorRules } + TTiendaWebBusinessProcessorRules = class(TDABusinessProcessorRules, ITiendaWeb, ITiendaWebDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetTIENDA_ACTIVAValue: Integer; virtual; + function GetOldTIENDA_ACTIVAValue: Integer; virtual; + procedure SetTIENDA_ACTIVAValue(const aValue: Integer); virtual; + function GetBDSERVERValue: String; virtual; + function GetOldBDSERVERValue: String; virtual; + procedure SetBDSERVERValue(const aValue: String); virtual; + function GetBDPORTValue: String; virtual; + function GetOldBDPORTValue: String; virtual; + procedure SetBDPORTValue(const aValue: String); virtual; + function GetBDNAMEValue: String; virtual; + function GetOldBDNAMEValue: String; virtual; + procedure SetBDNAMEValue(const aValue: String); virtual; + function GetBDUSERValue: String; virtual; + function GetOldBDUSERValue: String; virtual; + procedure SetBDUSERValue(const aValue: String); virtual; + function GetBDPASSValue: String; virtual; + function GetOldBDPASSValue: String; virtual; + procedure SetBDPASSValue(const aValue: String); virtual; + function GetULTIMA_ACTUALIZACIONValue: DateTime; virtual; + function GetOldULTIMA_ACTUALIZACIONValue: DateTime; virtual; + procedure SetULTIMA_ACTUALIZACIONValue(const aValue: DateTime); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property TIENDA_ACTIVA : Integer read GetTIENDA_ACTIVAValue write SetTIENDA_ACTIVAValue; + property OldTIENDA_ACTIVA : Integer read GetOldTIENDA_ACTIVAValue; + property BDSERVER : String read GetBDSERVERValue write SetBDSERVERValue; + property OldBDSERVER : String read GetOldBDSERVERValue; + property BDPORT : String read GetBDPORTValue write SetBDPORTValue; + property OldBDPORT : String read GetOldBDPORTValue; + property BDNAME : String read GetBDNAMEValue write SetBDNAMEValue; + property OldBDNAME : String read GetOldBDNAMEValue; + property BDUSER : String read GetBDUSERValue write SetBDUSERValue; + property OldBDUSER : String read GetOldBDUSERValue; + property BDPASS : String read GetBDPASSValue write SetBDPASSValue; + property OldBDPASS : String read GetOldBDPASSValue; + property ULTIMA_ACTUALIZACION : DateTime read GetULTIMA_ACTUALIZACIONValue write SetULTIMA_ACTUALIZACIONValue; + property OldULTIMA_ACTUALIZACION : DateTime read GetOldULTIMA_ACTUALIZACIONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_ManufacturersDelta } + Iosc_ManufacturersDelta = interface(Iosc_Manufacturers) + ['{26106CBF-B5D0-47B4-9BCA-7BE49FC8E911}'] + { Property getters and setters } + function GetOldmanufacturers_idValue : Integer; + function GetOldmanufacturers_nameValue : String; + function GetOldmanufacturers_imageValue : String; + function GetOlddate_addedValue : DateTime; + function GetOldlast_modifiedValue : DateTime; + function GetOldrdx_manufacturers_id_localValue : Integer; + + { Properties } + property Oldmanufacturers_id : Integer read GetOldmanufacturers_idValue; + property Oldmanufacturers_name : String read GetOldmanufacturers_nameValue; + property Oldmanufacturers_image : String read GetOldmanufacturers_imageValue; + property Olddate_added : DateTime read GetOlddate_addedValue; + property Oldlast_modified : DateTime read GetOldlast_modifiedValue; + property Oldrdx_manufacturers_id_local : Integer read GetOldrdx_manufacturers_id_localValue; + end; + + { Tosc_ManufacturersBusinessProcessorRules } + Tosc_ManufacturersBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Manufacturers, Iosc_ManufacturersDelta) + private + protected + { Property getters and setters } + function Getmanufacturers_idValue: Integer; virtual; + function GetOldmanufacturers_idValue: Integer; virtual; + procedure Setmanufacturers_idValue(const aValue: Integer); virtual; + function Getmanufacturers_nameValue: String; virtual; + function GetOldmanufacturers_nameValue: String; virtual; + procedure Setmanufacturers_nameValue(const aValue: String); virtual; + function Getmanufacturers_imageValue: String; virtual; + function GetOldmanufacturers_imageValue: String; virtual; + procedure Setmanufacturers_imageValue(const aValue: String); virtual; + function Getdate_addedValue: DateTime; virtual; + function GetOlddate_addedValue: DateTime; virtual; + procedure Setdate_addedValue(const aValue: DateTime); virtual; + function Getlast_modifiedValue: DateTime; virtual; + function GetOldlast_modifiedValue: DateTime; virtual; + procedure Setlast_modifiedValue(const aValue: DateTime); virtual; + function Getrdx_manufacturers_id_localValue: Integer; virtual; + function GetOldrdx_manufacturers_id_localValue: Integer; virtual; + procedure Setrdx_manufacturers_id_localValue(const aValue: Integer); virtual; + + { Properties } + property manufacturers_id : Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property Oldmanufacturers_id : Integer read GetOldmanufacturers_idValue; + property manufacturers_name : String read Getmanufacturers_nameValue write Setmanufacturers_nameValue; + property Oldmanufacturers_name : String read GetOldmanufacturers_nameValue; + property manufacturers_image : String read Getmanufacturers_imageValue write Setmanufacturers_imageValue; + property Oldmanufacturers_image : String read GetOldmanufacturers_imageValue; + property date_added : DateTime read Getdate_addedValue write Setdate_addedValue; + property Olddate_added : DateTime read GetOlddate_addedValue; + property last_modified : DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property Oldlast_modified : DateTime read GetOldlast_modifiedValue; + property rdx_manufacturers_id_local : Integer read Getrdx_manufacturers_id_localValue write Setrdx_manufacturers_id_localValue; + property Oldrdx_manufacturers_id_local : Integer read GetOldrdx_manufacturers_id_localValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_LanguagesDelta } + Iosc_LanguagesDelta = interface(Iosc_Languages) + ['{572746C7-6820-4601-BF1C-5A075CB78477}'] + { Property getters and setters } + function GetOldlanguages_idValue : Integer; + function GetOldnameValue : String; + function GetOldcodeValue : String; + function GetOldimageValue : String; + function GetOlddirectoryValue : String; + function GetOldsort_orderValue : Integer; + + { Properties } + property Oldlanguages_id : Integer read GetOldlanguages_idValue; + property Oldname : String read GetOldnameValue; + property Oldcode : String read GetOldcodeValue; + property Oldimage : String read GetOldimageValue; + property Olddirectory : String read GetOlddirectoryValue; + property Oldsort_order : Integer read GetOldsort_orderValue; + end; + + { Tosc_LanguagesBusinessProcessorRules } + Tosc_LanguagesBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Languages, Iosc_LanguagesDelta) + private + protected + { Property getters and setters } + function Getlanguages_idValue: Integer; virtual; + function GetOldlanguages_idValue: Integer; virtual; + procedure Setlanguages_idValue(const aValue: Integer); virtual; + function GetnameValue: String; virtual; + function GetOldnameValue: String; virtual; + procedure SetnameValue(const aValue: String); virtual; + function GetcodeValue: String; virtual; + function GetOldcodeValue: String; virtual; + procedure SetcodeValue(const aValue: String); virtual; + function GetimageValue: String; virtual; + function GetOldimageValue: String; virtual; + procedure SetimageValue(const aValue: String); virtual; + function GetdirectoryValue: String; virtual; + function GetOlddirectoryValue: String; virtual; + procedure SetdirectoryValue(const aValue: String); virtual; + function Getsort_orderValue: Integer; virtual; + function GetOldsort_orderValue: Integer; virtual; + procedure Setsort_orderValue(const aValue: Integer); virtual; + + { Properties } + property languages_id : Integer read Getlanguages_idValue write Setlanguages_idValue; + property Oldlanguages_id : Integer read GetOldlanguages_idValue; + property name : String read GetnameValue write SetnameValue; + property Oldname : String read GetOldnameValue; + property code : String read GetcodeValue write SetcodeValue; + property Oldcode : String read GetOldcodeValue; + property image : String read GetimageValue write SetimageValue; + property Oldimage : String read GetOldimageValue; + property directory : String read GetdirectoryValue write SetdirectoryValue; + property Olddirectory : String read GetOlddirectoryValue; + property sort_order : Integer read Getsort_orderValue write Setsort_orderValue; + property Oldsort_order : Integer read GetOldsort_orderValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_ProductsDelta } + Iosc_ProductsDelta = interface(Iosc_Products) + ['{B2E1F73E-59BC-457C-944D-D83E63CFDA7A}'] + { Property getters and setters } + function GetOldproducts_idValue : Integer; + function GetOldproducts_nameValue : String; + function GetOldproducts_descriptionValue : IROStrings; + function GetOldproducts_modelValue : String; + function GetOldproducts_date_addedValue : DateTime; + function GetOldproducts_last_modifiedValue : DateTime; + function GetOldproducts_statusValue : Integer; + function GetOldmanufacturers_idValue : Integer; + function GetOldrdx_products_id_localValue : Integer; + + { Properties } + property Oldproducts_id : Integer read GetOldproducts_idValue; + property Oldproducts_name : String read GetOldproducts_nameValue; + property Oldproducts_description : IROStrings read GetOldproducts_descriptionValue; + property Oldproducts_model : String read GetOldproducts_modelValue; + property Oldproducts_date_added : DateTime read GetOldproducts_date_addedValue; + property Oldproducts_last_modified : DateTime read GetOldproducts_last_modifiedValue; + property Oldproducts_status : Integer read GetOldproducts_statusValue; + property Oldmanufacturers_id : Integer read GetOldmanufacturers_idValue; + property Oldrdx_products_id_local : Integer read GetOldrdx_products_id_localValue; + end; + + { Tosc_ProductsBusinessProcessorRules } + Tosc_ProductsBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Products, Iosc_ProductsDelta) + private + protected + { Property getters and setters } + function Getproducts_idValue: Integer; virtual; + function GetOldproducts_idValue: Integer; virtual; + procedure Setproducts_idValue(const aValue: Integer); virtual; + function Getproducts_nameValue: String; virtual; + function GetOldproducts_nameValue: String; virtual; + procedure Setproducts_nameValue(const aValue: String); virtual; + function Getproducts_descriptionValue: IROStrings; virtual; + function GetOldproducts_descriptionValue: IROStrings; virtual; + procedure Setproducts_descriptionValue(const aValue: IROStrings); virtual; + function Getproducts_modelValue: String; virtual; + function GetOldproducts_modelValue: String; virtual; + procedure Setproducts_modelValue(const aValue: String); virtual; + function Getproducts_date_addedValue: DateTime; virtual; + function GetOldproducts_date_addedValue: DateTime; virtual; + procedure Setproducts_date_addedValue(const aValue: DateTime); virtual; + function Getproducts_last_modifiedValue: DateTime; virtual; + function GetOldproducts_last_modifiedValue: DateTime; virtual; + procedure Setproducts_last_modifiedValue(const aValue: DateTime); virtual; + function Getproducts_statusValue: Integer; virtual; + function GetOldproducts_statusValue: Integer; virtual; + procedure Setproducts_statusValue(const aValue: Integer); virtual; + function Getmanufacturers_idValue: Integer; virtual; + function GetOldmanufacturers_idValue: Integer; virtual; + procedure Setmanufacturers_idValue(const aValue: Integer); virtual; + function Getrdx_products_id_localValue: Integer; virtual; + function GetOldrdx_products_id_localValue: Integer; virtual; + procedure Setrdx_products_id_localValue(const aValue: Integer); virtual; + + { Properties } + property products_id : Integer read Getproducts_idValue write Setproducts_idValue; + property Oldproducts_id : Integer read GetOldproducts_idValue; + property products_name : String read Getproducts_nameValue write Setproducts_nameValue; + property Oldproducts_name : String read GetOldproducts_nameValue; + property products_description : IROStrings read Getproducts_descriptionValue write Setproducts_descriptionValue; + property Oldproducts_description : IROStrings read GetOldproducts_descriptionValue; + property products_model : String read Getproducts_modelValue write Setproducts_modelValue; + property Oldproducts_model : String read GetOldproducts_modelValue; + property products_date_added : DateTime read Getproducts_date_addedValue write Setproducts_date_addedValue; + property Oldproducts_date_added : DateTime read GetOldproducts_date_addedValue; + property products_last_modified : DateTime read Getproducts_last_modifiedValue write Setproducts_last_modifiedValue; + property Oldproducts_last_modified : DateTime read GetOldproducts_last_modifiedValue; + property products_status : Integer read Getproducts_statusValue write Setproducts_statusValue; + property Oldproducts_status : Integer read GetOldproducts_statusValue; + property manufacturers_id : Integer read Getmanufacturers_idValue write Setmanufacturers_idValue; + property Oldmanufacturers_id : Integer read GetOldmanufacturers_idValue; + property rdx_products_id_local : Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + property Oldrdx_products_id_local : Integer read GetOldrdx_products_id_localValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_OrdersDelta } + Iosc_OrdersDelta = interface(Iosc_Orders) + ['{F8C10D86-C5C9-40C8-8AF5-0E7B34E0BBA0}'] + { Property getters and setters } + function GetOldorders_idValue : Integer; + function GetOldrdx_orders_id_localValue : Integer; + function GetOldcustomers_idValue : Integer; + function GetOldrdx_customers_id_localValue : Integer; + function GetOlddelivery_nameValue : String; + function GetOlddelivery_companyValue : String; + function GetOlddelivery_street_addressValue : String; + function GetOlddelivery_suburbValue : String; + function GetOlddelivery_cityValue : String; + function GetOlddelivery_postcodeValue : String; + function GetOlddelivery_stateValue : String; + function GetOlddelivery_countryValue : String; + function GetOlddelivery_telephoneValue : String; + function GetOldlast_modifiedValue : DateTime; + function GetOlddate_purchasedValue : DateTime; + function GetOldorders_statusValue : Integer; + function GetOldorders_date_finishedValue : DateTime; + function GetOldcommentsValue : IROStrings; + + { Properties } + property Oldorders_id : Integer read GetOldorders_idValue; + property Oldrdx_orders_id_local : Integer read GetOldrdx_orders_id_localValue; + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property Oldrdx_customers_id_local : Integer read GetOldrdx_customers_id_localValue; + property Olddelivery_name : String read GetOlddelivery_nameValue; + property Olddelivery_company : String read GetOlddelivery_companyValue; + property Olddelivery_street_address : String read GetOlddelivery_street_addressValue; + property Olddelivery_suburb : String read GetOlddelivery_suburbValue; + property Olddelivery_city : String read GetOlddelivery_cityValue; + property Olddelivery_postcode : String read GetOlddelivery_postcodeValue; + property Olddelivery_state : String read GetOlddelivery_stateValue; + property Olddelivery_country : String read GetOlddelivery_countryValue; + property Olddelivery_telephone : String read GetOlddelivery_telephoneValue; + property Oldlast_modified : DateTime read GetOldlast_modifiedValue; + property Olddate_purchased : DateTime read GetOlddate_purchasedValue; + property Oldorders_status : Integer read GetOldorders_statusValue; + property Oldorders_date_finished : DateTime read GetOldorders_date_finishedValue; + property Oldcomments : IROStrings read GetOldcommentsValue; + end; + + { Tosc_OrdersBusinessProcessorRules } + Tosc_OrdersBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Orders, Iosc_OrdersDelta) + private + protected + { Property getters and setters } + function Getorders_idValue: Integer; virtual; + function GetOldorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getrdx_orders_id_localValue: Integer; virtual; + function GetOldrdx_orders_id_localValue: Integer; virtual; + procedure Setrdx_orders_id_localValue(const aValue: Integer); virtual; + function Getcustomers_idValue: Integer; virtual; + function GetOldcustomers_idValue: Integer; virtual; + procedure Setcustomers_idValue(const aValue: Integer); virtual; + function Getrdx_customers_id_localValue: Integer; virtual; + function GetOldrdx_customers_id_localValue: Integer; virtual; + procedure Setrdx_customers_id_localValue(const aValue: Integer); virtual; + function Getdelivery_nameValue: String; virtual; + function GetOlddelivery_nameValue: String; virtual; + procedure Setdelivery_nameValue(const aValue: String); virtual; + function Getdelivery_companyValue: String; virtual; + function GetOlddelivery_companyValue: String; virtual; + procedure Setdelivery_companyValue(const aValue: String); virtual; + function Getdelivery_street_addressValue: String; virtual; + function GetOlddelivery_street_addressValue: String; virtual; + procedure Setdelivery_street_addressValue(const aValue: String); virtual; + function Getdelivery_suburbValue: String; virtual; + function GetOlddelivery_suburbValue: String; virtual; + procedure Setdelivery_suburbValue(const aValue: String); virtual; + function Getdelivery_cityValue: String; virtual; + function GetOlddelivery_cityValue: String; virtual; + procedure Setdelivery_cityValue(const aValue: String); virtual; + function Getdelivery_postcodeValue: String; virtual; + function GetOlddelivery_postcodeValue: String; virtual; + procedure Setdelivery_postcodeValue(const aValue: String); virtual; + function Getdelivery_stateValue: String; virtual; + function GetOlddelivery_stateValue: String; virtual; + procedure Setdelivery_stateValue(const aValue: String); virtual; + function Getdelivery_countryValue: String; virtual; + function GetOlddelivery_countryValue: String; virtual; + procedure Setdelivery_countryValue(const aValue: String); virtual; + function Getdelivery_telephoneValue: String; virtual; + function GetOlddelivery_telephoneValue: String; virtual; + procedure Setdelivery_telephoneValue(const aValue: String); virtual; + function Getlast_modifiedValue: DateTime; virtual; + function GetOldlast_modifiedValue: DateTime; virtual; + procedure Setlast_modifiedValue(const aValue: DateTime); virtual; + function Getdate_purchasedValue: DateTime; virtual; + function GetOlddate_purchasedValue: DateTime; virtual; + procedure Setdate_purchasedValue(const aValue: DateTime); virtual; + function Getorders_statusValue: Integer; virtual; + function GetOldorders_statusValue: Integer; virtual; + procedure Setorders_statusValue(const aValue: Integer); virtual; + function Getorders_date_finishedValue: DateTime; virtual; + function GetOldorders_date_finishedValue: DateTime; virtual; + procedure Setorders_date_finishedValue(const aValue: DateTime); virtual; + function GetcommentsValue: IROStrings; virtual; + function GetOldcommentsValue: IROStrings; virtual; + procedure SetcommentsValue(const aValue: IROStrings); virtual; + + { Properties } + property orders_id : Integer read Getorders_idValue write Setorders_idValue; + property Oldorders_id : Integer read GetOldorders_idValue; + property rdx_orders_id_local : Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property Oldrdx_orders_id_local : Integer read GetOldrdx_orders_id_localValue; + property customers_id : Integer read Getcustomers_idValue write Setcustomers_idValue; + property Oldcustomers_id : Integer read GetOldcustomers_idValue; + property rdx_customers_id_local : Integer read Getrdx_customers_id_localValue write Setrdx_customers_id_localValue; + property Oldrdx_customers_id_local : Integer read GetOldrdx_customers_id_localValue; + property delivery_name : String read Getdelivery_nameValue write Setdelivery_nameValue; + property Olddelivery_name : String read GetOlddelivery_nameValue; + property delivery_company : String read Getdelivery_companyValue write Setdelivery_companyValue; + property Olddelivery_company : String read GetOlddelivery_companyValue; + property delivery_street_address : String read Getdelivery_street_addressValue write Setdelivery_street_addressValue; + property Olddelivery_street_address : String read GetOlddelivery_street_addressValue; + property delivery_suburb : String read Getdelivery_suburbValue write Setdelivery_suburbValue; + property Olddelivery_suburb : String read GetOlddelivery_suburbValue; + property delivery_city : String read Getdelivery_cityValue write Setdelivery_cityValue; + property Olddelivery_city : String read GetOlddelivery_cityValue; + property delivery_postcode : String read Getdelivery_postcodeValue write Setdelivery_postcodeValue; + property Olddelivery_postcode : String read GetOlddelivery_postcodeValue; + property delivery_state : String read Getdelivery_stateValue write Setdelivery_stateValue; + property Olddelivery_state : String read GetOlddelivery_stateValue; + property delivery_country : String read Getdelivery_countryValue write Setdelivery_countryValue; + property Olddelivery_country : String read GetOlddelivery_countryValue; + property delivery_telephone : String read Getdelivery_telephoneValue write Setdelivery_telephoneValue; + property Olddelivery_telephone : String read GetOlddelivery_telephoneValue; + property last_modified : DateTime read Getlast_modifiedValue write Setlast_modifiedValue; + property Oldlast_modified : DateTime read GetOldlast_modifiedValue; + property date_purchased : DateTime read Getdate_purchasedValue write Setdate_purchasedValue; + property Olddate_purchased : DateTime read GetOlddate_purchasedValue; + property orders_status : Integer read Getorders_statusValue write Setorders_statusValue; + property Oldorders_status : Integer read GetOldorders_statusValue; + property orders_date_finished : DateTime read Getorders_date_finishedValue write Setorders_date_finishedValue; + property Oldorders_date_finished : DateTime read GetOldorders_date_finishedValue; + property comments : IROStrings read GetcommentsValue write SetcommentsValue; + property Oldcomments : IROStrings read GetOldcommentsValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_Orders_productsDelta } + Iosc_Orders_productsDelta = interface(Iosc_Orders_products) + ['{B1A05364-00F9-4B59-95AA-70836D2F797C}'] + { Property getters and setters } + function GetOldorders_products_idValue : Integer; + function GetOldorders_idValue : Integer; + function GetOldproducts_idValue : Integer; + function GetOldrdx_products_id_localValue : Integer; + function GetOldproducts_modelValue : String; + function GetOldproducts_nameValue : String; + function GetOldproducts_priceValue : Float; + function GetOldfinal_priceValue : Float; + function GetOldproducts_taxValue : Float; + function GetOldproducts_quantityValue : Integer; + + { Properties } + property Oldorders_products_id : Integer read GetOldorders_products_idValue; + property Oldorders_id : Integer read GetOldorders_idValue; + property Oldproducts_id : Integer read GetOldproducts_idValue; + property Oldrdx_products_id_local : Integer read GetOldrdx_products_id_localValue; + property Oldproducts_model : String read GetOldproducts_modelValue; + property Oldproducts_name : String read GetOldproducts_nameValue; + property Oldproducts_price : Float read GetOldproducts_priceValue; + property Oldfinal_price : Float read GetOldfinal_priceValue; + property Oldproducts_tax : Float read GetOldproducts_taxValue; + property Oldproducts_quantity : Integer read GetOldproducts_quantityValue; + end; + + { Tosc_Orders_productsBusinessProcessorRules } + Tosc_Orders_productsBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Orders_products, Iosc_Orders_productsDelta) + private + protected + { Property getters and setters } + function Getorders_products_idValue: Integer; virtual; + function GetOldorders_products_idValue: Integer; virtual; + procedure Setorders_products_idValue(const aValue: Integer); virtual; + function Getorders_idValue: Integer; virtual; + function GetOldorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getproducts_idValue: Integer; virtual; + function GetOldproducts_idValue: Integer; virtual; + procedure Setproducts_idValue(const aValue: Integer); virtual; + function Getrdx_products_id_localValue: Integer; virtual; + function GetOldrdx_products_id_localValue: Integer; virtual; + procedure Setrdx_products_id_localValue(const aValue: Integer); virtual; + function Getproducts_modelValue: String; virtual; + function GetOldproducts_modelValue: String; virtual; + procedure Setproducts_modelValue(const aValue: String); virtual; + function Getproducts_nameValue: String; virtual; + function GetOldproducts_nameValue: String; virtual; + procedure Setproducts_nameValue(const aValue: String); virtual; + function Getproducts_priceValue: Float; virtual; + function GetOldproducts_priceValue: Float; virtual; + procedure Setproducts_priceValue(const aValue: Float); virtual; + function Getfinal_priceValue: Float; virtual; + function GetOldfinal_priceValue: Float; virtual; + procedure Setfinal_priceValue(const aValue: Float); virtual; + function Getproducts_taxValue: Float; virtual; + function GetOldproducts_taxValue: Float; virtual; + procedure Setproducts_taxValue(const aValue: Float); virtual; + function Getproducts_quantityValue: Integer; virtual; + function GetOldproducts_quantityValue: Integer; virtual; + procedure Setproducts_quantityValue(const aValue: Integer); virtual; + + { Properties } + property orders_products_id : Integer read Getorders_products_idValue write Setorders_products_idValue; + property Oldorders_products_id : Integer read GetOldorders_products_idValue; + property orders_id : Integer read Getorders_idValue write Setorders_idValue; + property Oldorders_id : Integer read GetOldorders_idValue; + property products_id : Integer read Getproducts_idValue write Setproducts_idValue; + property Oldproducts_id : Integer read GetOldproducts_idValue; + property rdx_products_id_local : Integer read Getrdx_products_id_localValue write Setrdx_products_id_localValue; + property Oldrdx_products_id_local : Integer read GetOldrdx_products_id_localValue; + property products_model : String read Getproducts_modelValue write Setproducts_modelValue; + property Oldproducts_model : String read GetOldproducts_modelValue; + property products_name : String read Getproducts_nameValue write Setproducts_nameValue; + property Oldproducts_name : String read GetOldproducts_nameValue; + property products_price : Float read Getproducts_priceValue write Setproducts_priceValue; + property Oldproducts_price : Float read GetOldproducts_priceValue; + property final_price : Float read Getfinal_priceValue write Setfinal_priceValue; + property Oldfinal_price : Float read GetOldfinal_priceValue; + property products_tax : Float read Getproducts_taxValue write Setproducts_taxValue; + property Oldproducts_tax : Float read GetOldproducts_taxValue; + property products_quantity : Integer read Getproducts_quantityValue write Setproducts_quantityValue; + property Oldproducts_quantity : Integer read GetOldproducts_quantityValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { Iosc_Orders_status_historyDelta } + Iosc_Orders_status_historyDelta = interface(Iosc_Orders_status_history) + ['{CA538D11-0CD2-4869-8EFB-135FEAAB43E1}'] + { Property getters and setters } + function GetOldorders_status_history_idValue : Integer; + function GetOldorders_idValue : Integer; + function GetOldrdx_orders_id_localValue : Integer; + function GetOldorders_status_idValue : Integer; + function GetOlddate_addedValue : DateTime; + function GetOldcustomer_notifiedValue : Integer; + function GetOldcommentsValue : IROStrings; + + { Properties } + property Oldorders_status_history_id : Integer read GetOldorders_status_history_idValue; + property Oldorders_id : Integer read GetOldorders_idValue; + property Oldrdx_orders_id_local : Integer read GetOldrdx_orders_id_localValue; + property Oldorders_status_id : Integer read GetOldorders_status_idValue; + property Olddate_added : DateTime read GetOlddate_addedValue; + property Oldcustomer_notified : Integer read GetOldcustomer_notifiedValue; + property Oldcomments : IROStrings read GetOldcommentsValue; + end; + + { Tosc_Orders_status_historyBusinessProcessorRules } + Tosc_Orders_status_historyBusinessProcessorRules = class(TDABusinessProcessorRules, Iosc_Orders_status_history, Iosc_Orders_status_historyDelta) + private + protected + { Property getters and setters } + function Getorders_status_history_idValue: Integer; virtual; + function GetOldorders_status_history_idValue: Integer; virtual; + procedure Setorders_status_history_idValue(const aValue: Integer); virtual; + function Getorders_idValue: Integer; virtual; + function GetOldorders_idValue: Integer; virtual; + procedure Setorders_idValue(const aValue: Integer); virtual; + function Getrdx_orders_id_localValue: Integer; virtual; + function GetOldrdx_orders_id_localValue: Integer; virtual; + procedure Setrdx_orders_id_localValue(const aValue: Integer); virtual; + function Getorders_status_idValue: Integer; virtual; + function GetOldorders_status_idValue: Integer; virtual; + procedure Setorders_status_idValue(const aValue: Integer); virtual; + function Getdate_addedValue: DateTime; virtual; + function GetOlddate_addedValue: DateTime; virtual; + procedure Setdate_addedValue(const aValue: DateTime); virtual; + function Getcustomer_notifiedValue: Integer; virtual; + function GetOldcustomer_notifiedValue: Integer; virtual; + procedure Setcustomer_notifiedValue(const aValue: Integer); virtual; + function GetcommentsValue: IROStrings; virtual; + function GetOldcommentsValue: IROStrings; virtual; + procedure SetcommentsValue(const aValue: IROStrings); virtual; + + { Properties } + property orders_status_history_id : Integer read Getorders_status_history_idValue write Setorders_status_history_idValue; + property Oldorders_status_history_id : Integer read GetOldorders_status_history_idValue; + property orders_id : Integer read Getorders_idValue write Setorders_idValue; + property Oldorders_id : Integer read GetOldorders_idValue; + property rdx_orders_id_local : Integer read Getrdx_orders_id_localValue write Setrdx_orders_id_localValue; + property Oldrdx_orders_id_local : Integer read GetOldrdx_orders_id_localValue; + property orders_status_id : Integer read Getorders_status_idValue write Setorders_status_idValue; + property Oldorders_status_id : Integer read GetOldorders_status_idValue; + property date_added : DateTime read Getdate_addedValue write Setdate_addedValue; + property Olddate_added : DateTime read GetOlddate_addedValue; + property customer_notified : Integer read Getcustomer_notifiedValue write Setcustomer_notifiedValue; + property Oldcustomer_notified : Integer read GetOldcustomer_notifiedValue; + property comments : IROStrings read GetcommentsValue write SetcommentsValue; + property Oldcomments : IROStrings read GetOldcommentsValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ Tosc_CustomersBusinessProcessorRules } +constructor Tosc_CustomersBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_CustomersBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_id]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_id]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_id] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_firstnameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_firstname]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_firstnameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_firstname]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_firstnameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_firstname] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_lastnameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_lastname]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_lastnameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_lastname]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_lastnameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_lastname] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_email_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_email_address]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_email_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_email_address]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_email_addressValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_email_address] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_default_address_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_default_address_id]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_default_address_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_default_address_id]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_default_address_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_default_address_id] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_telephone]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_telephone]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_telephoneValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_telephone] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_faxValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_fax]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_faxValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_fax]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_faxValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_fax] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getcustomers_passwordValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_password]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldcustomers_passwordValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customerscustomers_password]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setcustomers_passwordValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customerscustomers_password] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getrdx_customers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersrdx_customers_id_local]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOldrdx_customers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customersrdx_customers_id_local]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setrdx_customers_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersrdx_customers_id_local] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getdate_account_createdValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersdate_account_created]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOlddate_account_createdValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customersdate_account_created]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setdate_account_createdValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersdate_account_created] := aValue; +end; + +function Tosc_CustomersBusinessProcessorRules.Getdate_account_last_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersdate_account_last_modified]; +end; + +function Tosc_CustomersBusinessProcessorRules.GetOlddate_account_last_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Customersdate_account_last_modified]; +end; + +procedure Tosc_CustomersBusinessProcessorRules.Setdate_account_last_modifiedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Customersdate_account_last_modified] := aValue; +end; + + +{ TGetLastIDBusinessProcessorRules } +constructor TGetLastIDBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGetLastIDBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGetLastIDBusinessProcessorRules.Getlast_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetLastIDlast_id]; +end; + +function TGetLastIDBusinessProcessorRules.GetOldlast_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetLastIDlast_id]; +end; + +procedure TGetLastIDBusinessProcessorRules.Setlast_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetLastIDlast_id] := aValue; +end; + + +{ Tosc_AddressBookBusinessProcessorRules } +constructor Tosc_AddressBookBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_AddressBookBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getaddress_book_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookaddress_book_id]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldaddress_book_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookaddress_book_id]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setaddress_book_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookaddress_book_id] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookcustomers_id]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookcustomers_id]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setcustomers_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookcustomers_id] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_genderValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_gender]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_genderValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_gender]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_genderValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_gender] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_companyValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_company]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_companyValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_company]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_companyValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_company] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_firstnameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_firstname]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_firstnameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_firstname]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_firstnameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_firstname] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_lastnameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_lastname]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_lastnameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_lastname]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_lastnameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_lastname] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_street_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_street_address]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_street_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_street_address]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_street_addressValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_street_address] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_suburbValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_suburb]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_suburbValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_suburb]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_suburbValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_suburb] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_postcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_postcode]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_postcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_postcode]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_postcodeValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_postcode] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_cityValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_city]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_cityValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_city]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_cityValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_city] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_stateValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_state]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_stateValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_state]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_stateValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_state] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_country_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_country_id]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_country_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_country_id]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_country_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_country_id] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_zone_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_zone_id]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_zone_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_zone_id]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_zone_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_zone_id] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getentry_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_telephone]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldentry_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookentry_telephone]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setentry_telephoneValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookentry_telephone] := aValue; +end; + +function Tosc_AddressBookBusinessProcessorRules.Getrdx_address_book_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookrdx_address_book_id_local]; +end; + +function Tosc_AddressBookBusinessProcessorRules.GetOldrdx_address_book_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_AddressBookrdx_address_book_id_local]; +end; + +procedure Tosc_AddressBookBusinessProcessorRules.Setrdx_address_book_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_AddressBookrdx_address_book_id_local] := aValue; +end; + + +{ TTiendaWebBusinessProcessorRules } +constructor TTiendaWebBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TTiendaWebBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TTiendaWebBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebID]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebID]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebID] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebID_EMPRESA]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebID_EMPRESA]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebID_EMPRESA] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetTIENDA_ACTIVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebTIENDA_ACTIVA]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldTIENDA_ACTIVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebTIENDA_ACTIVA]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetTIENDA_ACTIVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebTIENDA_ACTIVA] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetBDSERVERValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDSERVER]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldBDSERVERValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebBDSERVER]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetBDSERVERValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDSERVER] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetBDPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDPORT]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldBDPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebBDPORT]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetBDPORTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDPORT] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetBDNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDNAME]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldBDNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebBDNAME]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetBDNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDNAME] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetBDUSERValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDUSER]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldBDUSERValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebBDUSER]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetBDUSERValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDUSER] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetBDPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDPASS]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldBDPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebBDPASS]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetBDPASSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebBDPASS] := aValue; +end; + +function TTiendaWebBusinessProcessorRules.GetULTIMA_ACTUALIZACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebULTIMA_ACTUALIZACION]; +end; + +function TTiendaWebBusinessProcessorRules.GetOldULTIMA_ACTUALIZACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiendaWebULTIMA_ACTUALIZACION]; +end; + +procedure TTiendaWebBusinessProcessorRules.SetULTIMA_ACTUALIZACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiendaWebULTIMA_ACTUALIZACION] := aValue; +end; + + +{ Tosc_ManufacturersBusinessProcessorRules } +constructor Tosc_ManufacturersBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_ManufacturersBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getmanufacturers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOldmanufacturers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturersmanufacturers_id]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setmanufacturers_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id] := aValue; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getmanufacturers_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_name]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOldmanufacturers_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturersmanufacturers_name]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setmanufacturers_nameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_name] := aValue; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getmanufacturers_imageValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_image]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOldmanufacturers_imageValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturersmanufacturers_image]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setmanufacturers_imageValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersmanufacturers_image] := aValue; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getdate_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersdate_added]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOlddate_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturersdate_added]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setdate_addedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersdate_added] := aValue; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getlast_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturerslast_modified]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOldlast_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturerslast_modified]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setlast_modifiedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturerslast_modified] := aValue; +end; + +function Tosc_ManufacturersBusinessProcessorRules.Getrdx_manufacturers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersrdx_manufacturers_id_local]; +end; + +function Tosc_ManufacturersBusinessProcessorRules.GetOldrdx_manufacturers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Manufacturersrdx_manufacturers_id_local]; +end; + +procedure Tosc_ManufacturersBusinessProcessorRules.Setrdx_manufacturers_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Manufacturersrdx_manufacturers_id_local] := aValue; +end; + + +{ Tosc_LanguagesBusinessProcessorRules } +constructor Tosc_LanguagesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_LanguagesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_LanguagesBusinessProcessorRules.Getlanguages_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languageslanguages_id]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOldlanguages_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languageslanguages_id]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.Setlanguages_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languageslanguages_id] := aValue; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetnameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesname]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOldnameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languagesname]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.SetnameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesname] := aValue; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagescode]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOldcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languagescode]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.SetcodeValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagescode] := aValue; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetimageValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesimage]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOldimageValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languagesimage]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.SetimageValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesimage] := aValue; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetdirectoryValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesdirectory]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOlddirectoryValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languagesdirectory]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.SetdirectoryValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagesdirectory] := aValue; +end; + +function Tosc_LanguagesBusinessProcessorRules.Getsort_orderValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagessort_order]; +end; + +function Tosc_LanguagesBusinessProcessorRules.GetOldsort_orderValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Languagessort_order]; +end; + +procedure Tosc_LanguagesBusinessProcessorRules.Setsort_orderValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Languagessort_order] := aValue; +end; + + +{ Tosc_ProductsBusinessProcessorRules } +constructor Tosc_ProductsBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_ProductsBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_id]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_id]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_id] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_name]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_name]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_nameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_name] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_descriptionValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_description]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_descriptionValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_description]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_descriptionValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_description] := aValue.Text; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_modelValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_model]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_modelValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_model]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_modelValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_model] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_date_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_date_added]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_date_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_date_added]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_date_addedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_date_added] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_last_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_last_modified]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_last_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_last_modified]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_last_modifiedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_last_modified] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getproducts_statusValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_status]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldproducts_statusValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsproducts_status]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setproducts_statusValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsproducts_status] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getmanufacturers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsmanufacturers_id]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldmanufacturers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsmanufacturers_id]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setmanufacturers_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsmanufacturers_id] := aValue; +end; + +function Tosc_ProductsBusinessProcessorRules.Getrdx_products_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsrdx_products_id_local]; +end; + +function Tosc_ProductsBusinessProcessorRules.GetOldrdx_products_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Productsrdx_products_id_local]; +end; + +procedure Tosc_ProductsBusinessProcessorRules.Setrdx_products_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Productsrdx_products_id_local] := aValue; +end; + + +{ Tosc_OrdersBusinessProcessorRules } +constructor Tosc_OrdersBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_OrdersBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_OrdersBusinessProcessorRules.Getorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_id]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersorders_id]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setorders_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_id] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getrdx_orders_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersrdx_orders_id_local]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldrdx_orders_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersrdx_orders_id_local]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setrdx_orders_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersrdx_orders_id_local] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderscustomers_id]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldcustomers_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orderscustomers_id]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setcustomers_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderscustomers_id] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getrdx_customers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersrdx_customers_id_local]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldrdx_customers_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersrdx_customers_id_local]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setrdx_customers_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersrdx_customers_id_local] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_name]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_name]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_nameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_name] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_companyValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_company]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_companyValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_company]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_companyValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_company] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_street_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_street_address]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_street_addressValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_street_address]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_street_addressValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_street_address] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_suburbValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_suburb]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_suburbValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_suburb]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_suburbValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_suburb] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_cityValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_city]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_cityValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_city]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_cityValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_city] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_postcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_postcode]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_postcodeValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_postcode]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_postcodeValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_postcode] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_stateValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_state]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_stateValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_state]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_stateValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_state] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_countryValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_country]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_countryValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_country]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_countryValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_country] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdelivery_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_telephone]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddelivery_telephoneValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdelivery_telephone]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdelivery_telephoneValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdelivery_telephone] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getlast_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderslast_modified]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldlast_modifiedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orderslast_modified]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setlast_modifiedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderslast_modified] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getdate_purchasedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdate_purchased]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOlddate_purchasedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersdate_purchased]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setdate_purchasedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersdate_purchased] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getorders_statusValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_status]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldorders_statusValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersorders_status]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setorders_statusValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_status] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.Getorders_date_finishedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_date_finished]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldorders_date_finishedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Ordersorders_date_finished]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.Setorders_date_finishedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Ordersorders_date_finished] := aValue; +end; + +function Tosc_OrdersBusinessProcessorRules.GetcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderscomments]; +end; + +function Tosc_OrdersBusinessProcessorRules.GetOldcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orderscomments]; +end; + +procedure Tosc_OrdersBusinessProcessorRules.SetcommentsValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orderscomments] := aValue.Text; +end; + + +{ Tosc_Orders_productsBusinessProcessorRules } +constructor Tosc_Orders_productsBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_Orders_productsBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getorders_products_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsorders_products_id]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldorders_products_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsorders_products_id]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setorders_products_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsorders_products_id] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsorders_id]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsorders_id]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setorders_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsorders_id] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_id]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_id]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_id] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getrdx_products_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsrdx_products_id_local]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldrdx_products_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsrdx_products_id_local]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setrdx_products_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsrdx_products_id_local] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_modelValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_model]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_modelValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_model]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_modelValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_model] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_name]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_nameValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_name]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_nameValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_name] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_priceValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_price]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_priceValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_price]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_priceValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_price] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getfinal_priceValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsfinal_price]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldfinal_priceValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsfinal_price]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setfinal_priceValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsfinal_price] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_taxValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_tax]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_taxValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_tax]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_taxValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_tax] := aValue; +end; + +function Tosc_Orders_productsBusinessProcessorRules.Getproducts_quantityValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_quantity]; +end; + +function Tosc_Orders_productsBusinessProcessorRules.GetOldproducts_quantityValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_productsproducts_quantity]; +end; + +procedure Tosc_Orders_productsBusinessProcessorRules.Setproducts_quantityValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_productsproducts_quantity] := aValue; +end; + + +{ Tosc_Orders_status_historyBusinessProcessorRules } +constructor Tosc_Orders_status_historyBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor Tosc_Orders_status_historyBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getorders_status_history_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_status_history_id]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldorders_status_history_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historyorders_status_history_id]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setorders_status_history_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_status_history_id] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_id]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldorders_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historyorders_id]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setorders_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_id] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getrdx_orders_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyrdx_orders_id_local]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldrdx_orders_id_localValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historyrdx_orders_id_local]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setrdx_orders_id_localValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyrdx_orders_id_local] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getorders_status_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_status_id]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldorders_status_idValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historyorders_status_id]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setorders_status_idValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historyorders_status_id] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getdate_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historydate_added]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOlddate_addedValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historydate_added]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setdate_addedValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historydate_added] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.Getcustomer_notifiedValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historycustomer_notified]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldcustomer_notifiedValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historycustomer_notified]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.Setcustomer_notifiedValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historycustomer_notified] := aValue; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historycomments]; +end; + +function Tosc_Orders_status_historyBusinessProcessorRules.GetOldcommentsValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_osc_Orders_status_historycomments]; +end; + +procedure Tosc_Orders_status_historyBusinessProcessorRules.SetcommentsValue(const aValue: IROStrings); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_osc_Orders_status_historycomments] := aValue.Text; +end; + + +initialization + RegisterBusinessProcessorRules(RID_osc_CustomersDelta, Tosc_CustomersBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GetLastIDDelta, TGetLastIDBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_AddressBookDelta, Tosc_AddressBookBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_TiendaWebDelta, TTiendaWebBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_ManufacturersDelta, Tosc_ManufacturersBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_LanguagesDelta, Tosc_LanguagesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_ProductsDelta, Tosc_ProductsBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_OrdersDelta, Tosc_OrdersBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_Orders_productsDelta, Tosc_Orders_productsBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_osc_Orders_status_historyDelta, Tosc_Orders_status_historyBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscAddressBook.pas b/Source/Modulos/Tienda web/Model/uBizOscAddressBook.pas new file mode 100644 index 00000000..25e1e7d6 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscAddressBook.pas @@ -0,0 +1,110 @@ +{ +=============================================================================== + 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 uBizOscAddressBook; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_OSC_ADDRESSBOOK = 'Client.OSC.AddressBook'; + +type + IBizOscAddressBook = interface(Iosc_AddressBook) + ['{367AB44E-4E9B-4F40-B695-2ED1085C18E9}'] + function EsNuevo : Boolean; + end; + + TBizOscAddressBook = class(Tosc_AddressBookDataTableRules, IBizOscAddressBook, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizOscAddressBook } + +uses + SysUtils, uDataTableUtils, DB; + +procedure TBizOscAddressBook.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +constructor TBizOscAddressBook.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscAddressBook.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscAddressBook.EsNuevo: Boolean; +begin + Result := (address_book_id < 0); +end; + +procedure TBizOscAddressBook.IniciarValoresNuevo; +begin + entry_country_id := 195; // Spain + entry_zone_id := 161; // Madrid +end; + +procedure TBizOscAddressBook.OnNewRecord(Sender: TDADataTable); +begin + inherited; + address_book_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_ADDRESSBOOK, TBizOscAddressBook); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscAddressBookServer.pas b/Source/Modulos/Tienda web/Model/uBizOscAddressBookServer.pas new file mode 100644 index 00000000..db1d1857 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscAddressBookServer.pas @@ -0,0 +1,56 @@ +unit uBizOscAddressBookServer; + +interface + +uses + schTiendaWebServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uBusinessUtils; + +const + BIZ_SERVER_OSC_ADDRESSBOOK = 'Server.OSC.AddressBook'; + +type + TBizOscAddressBookServer = class(Tosc_CustomersBusinessProcessorRules) + + protected + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + + + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uROClasses; + +{ TBizOscAddressBookServer } + +procedure TBizOscAddressBookServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ADataset : IDADataset; +begin + ASchema := Sender.Schema; + ACurrentConn := GetBusinessProcessorConnection(Sender); + + inherited; + + case aChange.ChangeType of + ctInsert: begin + ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True); + aChange.NewValueByName[fld_osc_AddressBookaddress_book_id] := ADataSet.FieldByName('last_id').AsInteger; + end; + end; + + CanRemoveFromDelta := False; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OSC_ADDRESSBOOK, TBizOscAddressBookServer); + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscCustomerServer.pas b/Source/Modulos/Tienda web/Model/uBizOscCustomerServer.pas new file mode 100644 index 00000000..f9641308 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscCustomerServer.pas @@ -0,0 +1,126 @@ +unit uBizOscCustomerServer; + +interface + +uses + SysUtils, schTiendaWebServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uBusinessUtils; + +const + BIZ_SERVER_OSC_CUSTOMER = 'Server.OSC.Customer'; + +type + TBizOscCustomerServer = class(Tosc_CustomersBusinessProcessorRules) + protected + procedure Insert_Customers_Info(aChange: TDADeltaChange); + procedure Update_Customers_Info(aChange: TDADeltaChange); + procedure Delete_Customers_Info(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 + +uses + Dialogs, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uROClasses, srvTiendaWeb_Impl, Windows; + +{ TBizOscCustomerServer } + +procedure TBizOscCustomerServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ADataset : IDADataset; +begin + ASchema := Sender.Schema; + ACurrentConn := GetBusinessProcessorConnection(Sender); + + inherited; + + case aChange.ChangeType of + ctInsert: begin + ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True); + aChange.NewValueByName[fld_osc_Customerscustomers_id] := ADataSet.FieldByName('last_id').AsInteger; + Insert_Customers_Info(aChange); + end; + + ctUpdate: Update_Customers_Info(aChange); + ctDelete: Delete_Customers_Info(aChange); + end; + + CanRemoveFromDelta := False; +end; + +procedure TBizOscCustomerServer.Delete_Customers_Info(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_Customers_info'); + try + with ACommand do + begin + ParamByName('OLD_customers_info_id').Value := aChange.OldValueByName[fld_osc_Customerscustomers_id]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizOscCustomerServer.Insert_Customers_Info(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_Customers_info'); + try + with ACommand do + begin + ParamByName('customers_info_id').Value := aChange.NewValueByName[fld_osc_Customerscustomers_id]; + ParamByName('rdx_customers_info_id_local').Value := aChange.NewValueByName[fld_osc_Customersrdx_customers_id_local]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizOscCustomerServer.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 TBizOscCustomerServer.Update_Customers_Info(aChange: TDADeltaChange); +begin + // NO HACE FALTA HACER NADA +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OSC_CUSTOMER, TBizOscCustomerServer); + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscCustomers.pas b/Source/Modulos/Tienda web/Model/uBizOscCustomers.pas new file mode 100644 index 00000000..13fbdbf1 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscCustomers.pas @@ -0,0 +1,128 @@ +{ +=============================================================================== + 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 uBizOscCustomers; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf, + uBizOscAddressBook; + +const + BIZ_CLIENT_OSC_CUSTOMER = 'Client.OSC.Customer'; + +type + IBizOscCustomer = interface(Iosc_Customers) + ['{DF158539-E502-4F38-B382-136A58C44EC7}'] + function EsNuevo : Boolean; + + procedure SetAddressBook(AValue : IBizOscAddressBook); + function GetAddressBook : IBizOscAddressBook; + property AddressBook : IBizOscAddressBook read GetAddressBook write SetAddressBook; + end; + + TBizOscCustomer = class(Tosc_CustomersDataTableRules, IBizOscCustomer, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + FAddressBook : IBizOscAddressBook; + FAddressBookLink : TDADataSource; + procedure SetAddressBook(AValue : IBizOscAddressBook); + function GetAddressBook : IBizOscAddressBook; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + property AddressBook : IBizOscAddressBook read GetAddressBook write SetAddressBook; + end; + +implementation + +{ TBizOscCustomers } + +uses + SysUtils, uDataTableUtils; + +function TBizOscCustomer.GetAddressBook: IBizOscAddressBook; +begin + Result := FAddressBook; +end; + +procedure TBizOscCustomer.SetAddressBook(AValue: IBizOscAddressBook); +begin + FAddressBook := AValue; + EnlazarMaestroDetalle(FAddressBookLink, FAddressBook); +end; + +constructor TBizOscCustomer.Create(aDataTable: TDADataTable); +begin + inherited; + FAddressBookLink := TDADataSource.Create(NIL); + FAddressBookLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscCustomer.Destroy; +begin + FAddressBook := NIL; + FreeAndNIL(FAddressBookLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscCustomer.EsNuevo: Boolean; +begin + Result := (customers_id < 0); +end; + +procedure TBizOscCustomer.IniciarValoresNuevo; +begin + // +end; + +procedure TBizOscCustomer.OnNewRecord(Sender: TDADataTable); +begin + inherited; + customers_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_CUSTOMER, TBizOscCustomer); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscManufacturerServer.pas b/Source/Modulos/Tienda web/Model/uBizOscManufacturerServer.pas new file mode 100644 index 00000000..8b1084a9 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscManufacturerServer.pas @@ -0,0 +1,158 @@ +unit uBizOscManufacturerServer; + +interface + +uses + schTiendaWebServer_Intf, uDAInterfaces, SysUtils, + uDADataTable, uDABusinessProcessor, uBusinessUtils; + +const + BIZ_SERVER_OSC_MANUFACTURER= 'Server.OSC.Manufacturer'; + +type + TBizOscManufacturerServer = class(Tosc_ManufacturersBusinessProcessorRules) + protected + procedure Insert_Manufacturers_Info(aChange: TDADeltaChange); + procedure Update_Manufacturers_Info(aChange: TDADeltaChange); + procedure Delete_Manufacturers_Info(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 + +uses + Dialogs, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uROClasses; + +{ TBizOscManufacturerServer } + +procedure TBizOscManufacturerServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ADataset : IDADataset; +begin + ASchema := Sender.Schema; + ACurrentConn := GetBusinessProcessorConnection(Sender); + + inherited; + + case aChange.ChangeType of + ctInsert: begin + ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True); + aChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id] := ADataSet.FieldByName('last_id').AsInteger; + Insert_Manufacturers_Info(aChange); + end; + + ctUpdate: Update_Manufacturers_Info(aChange); + ctDelete: Delete_Manufacturers_Info(aChange); + end; + + CanRemoveFromDelta := False; +end; + +procedure TBizOscManufacturerServer.Delete_Manufacturers_Info( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; + AIdiomasDataSet : IDADataset; + I: Integer; +begin + // Borramos una fila por cada idioma que hay en OsCommerce y + // por cada fabricante que hay. + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_osc_Manufacturers_info'); + AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages); + try + AIdiomasDataSet.Open; + for I := 0 to AIdiomasDataSet.RecordCount - 1 do + begin + with ACommand do + begin + ParamByName('OLD_manufacturers_id').Value := aChange.OldValueByName[fld_osc_Manufacturersmanufacturers_id]; + ParamByName('OLD_languages_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value; + Execute; + end; + AIdiomasDataSet.Next; + end; + AIdiomasDataSet.Close; + finally + ACommand := NIL; + AIdiomasDataSet := NIL; + end; +end; + +procedure TBizOscManufacturerServer.Insert_Manufacturers_Info( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; + AIdiomasDataSet : IDADataset; + I: Integer; +begin + // Aquí insertamos una fila por cada idioma que hay en OsCommerce y + // por cada fabricante que hay. Se hace para que no falle la tienda + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_osc_Manufacturers_info'); + AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages); + try + AIdiomasDataSet.Open; + for I := 0 to AIdiomasDataSet.RecordCount - 1 do + begin + with ACommand do + begin + ParamByName('manufacturers_id').Value := aChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id]; + ParamByName('languages_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value; + ParamByName('manufacturers_url').Value := ''; + ParamByName('url_clicked').Value := 0; + ParamByName('date_last_click').Value := null; + Execute; + end; + AIdiomasDataSet.Next; + end; + AIdiomasDataSet.Close; + finally + ACommand := NIL; + AIdiomasDataSet := NIL; + end; +end; + +procedure TBizOscManufacturerServer.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 TBizOscManufacturerServer.Update_Manufacturers_Info( + aChange: TDADeltaChange); +begin + // Aquí no hace falta hacer nada por que la información + // que hay en manufacturers_info no la necesitamos. +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OSC_MANUFACTURER, TBizOscManufacturerServer); + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscManufacturers.pas b/Source/Modulos/Tienda web/Model/uBizOscManufacturers.pas new file mode 100644 index 00000000..db65b4cc --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscManufacturers.pas @@ -0,0 +1,101 @@ +{ +=============================================================================== + 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 uBizOscManufacturers; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_OSC_MANUFACTURER = 'Client.OscManufacturer'; + +type + IBizOscManufacturer = interface(Iosc_Manufacturers) + ['{1426504F-8DBA-46C2-BC7B-A841503CA53E}'] + function EsNuevo : Boolean; + end; + + TBizOscManufacturer = class(Tosc_ManufacturersDataTableRules, IBizOscManufacturer, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizOscManufacturer } + +uses + SysUtils, uDataTableUtils; + +constructor TBizOscManufacturer.Create(aDataTable: TDADataTable); +begin + inherited; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscManufacturer.Destroy; +begin + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscManufacturer.EsNuevo: Boolean; +begin + Result := (manufacturers_id < 0) +end; + +procedure TBizOscManufacturer.IniciarValoresNuevo; +begin + date_added := Now; +end; + +procedure TBizOscManufacturer.OnNewRecord(Sender: TDADataTable); +begin + inherited; + manufacturers_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_MANUFACTURER, TBizOscManufacturer); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscOrderProducts.pas b/Source/Modulos/Tienda web/Model/uBizOscOrderProducts.pas new file mode 100644 index 00000000..9c5c997d --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscOrderProducts.pas @@ -0,0 +1,109 @@ +{ +=============================================================================== + 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 uBizOscOrderProducts; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_OSC_ORDERPRODUCTS = 'Client.OSC.OrderProducts'; + +type + IBizOscOrderProducts = interface(Iosc_Orders_products) + ['{C4800680-96AD-4890-81B0-AB182A60D195}'] + function EsNuevo : Boolean; + end; + + TBizOscOrderProducts = class(Tosc_Orders_ProductsDataTableRules, IBizOscOrderProducts, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizOscOrderProducts } + +uses + SysUtils, uDataTableUtils, DB; + +procedure TBizOscOrderProducts.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +constructor TBizOscOrderProducts.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscOrderProducts.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscOrderProducts.EsNuevo: Boolean; +begin + Result := (orders_products_id < 0); +end; + +procedure TBizOscOrderProducts.IniciarValoresNuevo; +begin + // +end; + +procedure TBizOscOrderProducts.OnNewRecord(Sender: TDADataTable); +begin + inherited; + orders_products_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_ORDERPRODUCTS, TBizOscOrderProducts); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscOrderServer.pas b/Source/Modulos/Tienda web/Model/uBizOscOrderServer.pas new file mode 100644 index 00000000..7b4f7661 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscOrderServer.pas @@ -0,0 +1,132 @@ +unit uBizOscOrderServer; + +interface + +uses + schTiendaWebServer_Intf, uDAInterfaces, SysUtils, + uDADataTable, uDABusinessProcessor, uBusinessUtils; + +const + BIZ_SERVER_OSC_ORDER= 'Server.OSC.Order'; + +type + TBizOscOrderServer = class(Tosc_OrdersBusinessProcessorRules) + protected + procedure Insert_Orders_Info(aChange: TDADeltaChange); + procedure Update_Orders_Info(aChange: TDADeltaChange); + procedure Delete_Orders_Info(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 + +uses + Dialogs, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uROClasses; + + +{ TBizOscOrderServer } + +procedure TBizOscOrderServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ADataset : IDADataset; +begin + ASchema := Sender.Schema; + ACurrentConn := GetBusinessProcessorConnection(Sender); + + inherited; + + case aChange.ChangeType of + ctInsert: begin + ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True); + aChange.NewValueByName[fld_osc_Ordersorders_id] := ADataSet.FieldByName('last_id').AsInteger; + Insert_Orders_Info(aChange); + end; + + ctUpdate: Update_Orders_Info(aChange); + ctDelete: Delete_Orders_Info(aChange); + end; + + CanRemoveFromDelta := False; +end; + +procedure TBizOscOrderServer.Delete_Orders_Info(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + // Borramos una fila por cada idioma que hay en OsCommerce y + // por cada fabricante que hay. + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_osc_Orders_status_history'); + try + with ACommand do + begin + ParamByName('OLD_orders_id').Value := aChange.OldValueByName[fld_osc_Ordersorders_id]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizOscOrderServer.Insert_Orders_Info(aChange: TDADeltaChange); +begin + // +end; + +procedure TBizOscOrderServer.ProcessError(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; + Error: Exception); +begin + inherited; + +end; + +procedure TBizOscOrderServer.Update_Orders_Info(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + if aChange.OldValueByName[fld_osc_Ordersorders_status] <> aChange.NewValueByName[fld_osc_Ordersorders_status] then + begin + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_osc_Orders_status_history'); + try + with ACommand do + begin + ACommand.ParamByName('orders_id').Value := aChange.OldValueByName[fld_osc_Ordersorders_id]; + ACommand.ParamByName('orders_status_id').Value := aChange.NewValueByName[fld_osc_Ordersorders_status]; + ACommand.ParamByName('customer_notified').Value := 0; + ACommand.ParamByName('comments').Value := aChange.NewValueByName[fld_osc_Orderscomments]; + ACommand.Execute; + end; + finally + ACommand := NIL; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OSC_ORDER, TBizOscOrderServer); + + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscOrderStatus.pas b/Source/Modulos/Tienda web/Model/uBizOscOrderStatus.pas new file mode 100644 index 00000000..b4382cde --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscOrderStatus.pas @@ -0,0 +1,109 @@ +{ +=============================================================================== + 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 uBizOscOrderStatus; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_OSC_ORDERSTATUS = 'Client.OSC.OrderStatus'; + +type + IBizOscOrderStatus = interface(Iosc_Orders_status_history) + ['{D73A9573-4491-4E4E-BB2D-64197773A202}'] + function EsNuevo : Boolean; + end; + + TBizOscOrderStatus = class(Tosc_Orders_status_historyDataTableRules, IBizOscOrderStatus, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizOscOrderStatus } + +uses + SysUtils, uDataTableUtils, DB; + +procedure TBizOscOrderStatus.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +constructor TBizOscOrderStatus.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscOrderStatus.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscOrderStatus.EsNuevo: Boolean; +begin + Result := (orders_status_history_id < 0); +end; + +procedure TBizOscOrderStatus.IniciarValoresNuevo; +begin + // +end; + +procedure TBizOscOrderStatus.OnNewRecord(Sender: TDADataTable); +begin + inherited; + orders_status_history_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_ORDERSTATUS, TBizOscOrderStatus); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscOrders.pas b/Source/Modulos/Tienda web/Model/uBizOscOrders.pas new file mode 100644 index 00000000..6d4a3cb8 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscOrders.pas @@ -0,0 +1,128 @@ +{ +=============================================================================== + 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 uBizOscOrders; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf, + uBizOscOrderProducts; + +const + BIZ_CLIENT_OSC_ORDER = 'Client.OSC.Order'; + +type + IBizOscOrder = interface(Iosc_Orders) + ['{A30188C2-CCC8-4107-A997-A7D470AD5BBC}'] + function EsNuevo : Boolean; + + procedure SetOrderProducts(AValue : IBizOscOrderProducts); + function GetOrderProducts : IBizOscOrderProducts; + property OrderProducts : IBizOscOrderProducts read GetOrderProducts write SetOrderProducts; + end; + + TBizOscOrder = class(Tosc_OrdersDataTableRules, IBizOscOrder, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + FOrderProducts : IBizOscOrderProducts; + FOrderProductsLink : TDADataSource; + + procedure SetOrderProducts(AValue : IBizOscOrderProducts); + function GetOrderProducts : IBizOscOrderProducts; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + property OrderProducts : IBizOscOrderProducts read GetOrderProducts write SetOrderProducts; + end; + +implementation + +{ TBizOscOrders } + +uses + SysUtils, uDataTableUtils; + +function TBizOscOrder.GetOrderProducts: IBizOscOrderProducts; +begin + Result := FOrderProducts; +end; + +procedure TBizOscOrder.SetOrderProducts(AValue: IBizOscOrderProducts); +begin + FOrderProducts := AValue; + EnlazarMaestroDetalle(FOrderProductsLink, FOrderProducts); +end; + +constructor TBizOscOrder.Create(aDataTable: TDADataTable); +begin + inherited; + FOrderProductsLink := TDADataSource.Create(NIL); + FOrderProductsLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscOrder.Destroy; +begin + FOrderProducts := NIL; + FreeAndNIL(FOrderProductsLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscOrder.EsNuevo: Boolean; +begin + Result := (orders_id < 0); +end; + +procedure TBizOscOrder.IniciarValoresNuevo; +begin + // +end; + +procedure TBizOscOrder.OnNewRecord(Sender: TDADataTable); +begin + inherited; + orders_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_ORDER, TBizOscOrder); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizOscProductServer.pas b/Source/Modulos/Tienda web/Model/uBizOscProductServer.pas new file mode 100644 index 00000000..36b6eaf0 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscProductServer.pas @@ -0,0 +1,257 @@ +unit uBizOscProductServer; + +interface + +uses + schTiendaWebServer_Intf, uDAInterfaces, SysUtils, + uDADataTable, uDABusinessProcessor, uBusinessUtils; + +const + BIZ_SERVER_OSC_PRODUCT = 'Server.OSC.Product'; + +type + TBizOscProductServer = class(Tosc_ProductsBusinessProcessorRules) + protected + procedure Insert_Products_Description(aChange: TDADeltaChange); + procedure Update_Products_Description(aChange: TDADeltaChange); + procedure Delete_Products_Description(aChange: TDADeltaChange); + + procedure Insert_Products_to_categories(aChange: TDADeltaChange); + procedure Update_Products_to_categories(aChange: TDADeltaChange); + procedure Delete_Products_to_categories(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 + +uses + Dialogs, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uROClasses; + +const + CATEGORIES_ID = 1; + +{ TBizOscProductServer } + +procedure TBizOscProductServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ADataset : IDADataset; +begin + ASchema := Sender.Schema; + ACurrentConn := GetBusinessProcessorConnection(Sender); + + inherited; + + case aChange.ChangeType of + ctInsert: begin + ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True); + aChange.NewValueByName[fld_osc_Productsproducts_id] := ADataSet.FieldByName('last_id').AsInteger; + Insert_Products_Description(aChange); + Insert_Products_to_categories(aChange); + end; + + ctUpdate: begin + Update_Products_Description(aChange); + Update_Products_to_categories(aChange); + end; + ctDelete: begin + Delete_Products_Description(aChange); + Delete_Products_to_categories(aChange); + end; + end; + + CanRemoveFromDelta := False; +end; + +procedure TBizOscProductServer.Delete_Products_Description( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; + AIdiomasDataSet : IDADataset; + I: Integer; +begin + // Borramos una fila por cada idioma que hay en OsCommerce y + // por cada fabricante que hay. + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + // Tabla osc_Products_description + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_osc_Products_description'); + AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages); + try + AIdiomasDataSet.Open; + for I := 0 to AIdiomasDataSet.RecordCount - 1 do + begin + with ACommand do + begin + ParamByName('OLD_products_id').Value := aChange.OldValueByName[fld_osc_Productsproducts_id]; + ParamByName('OLD_language_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value; + Execute; + end; + AIdiomasDataSet.Next; + end; + AIdiomasDataSet.Close; + finally + ACommand := NIL; + AIdiomasDataSet := NIL; + end; +end; + +procedure TBizOscProductServer.Delete_Products_to_categories( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + // Tabla osc_Products_description + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_osc_Products_to_categories'); + try + with ACommand do + begin + ParamByName('OLD_products_id').Value := aChange.OldValueByName[fld_osc_Productsproducts_id]; + ParamByName('OLD_categories_id').Value := CATEGORIES_ID; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizOscProductServer.Insert_Products_Description( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; + AIdiomasDataSet : IDADataset; + I: Integer; +begin + // Aquí insertamos una fila por cada idioma que hay en OsCommerce y + // por cada producto que hay. Se hace para que no falle la tienda + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_osc_Products_description'); + AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages); + try + AIdiomasDataSet.Open; + for I := 0 to AIdiomasDataSet.RecordCount - 1 do + begin + with ACommand do + begin + ParamByName('products_id').Value := aChange.NewValueByName[fld_osc_Productsproducts_id]; + ParamByName('language_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value; + ParamByName('products_name').Value := aChange.NewValueByName[fld_osc_Productsproducts_name]; + ParamByName('products_description').Value := aChange.NewValueByName[fld_osc_Productsproducts_description]; + ParamByName('products_url').Value := null; + ParamByName('products_viewed').Value := 0; + Execute; + end; + AIdiomasDataSet.Next; + end; + AIdiomasDataSet.Close; + finally + ACommand := NIL; + AIdiomasDataSet := NIL; + end; +end; + +procedure TBizOscProductServer.Insert_Products_to_categories( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_osc_Products_to_categories'); + try + with ACommand do + begin + ParamByName('products_id').Value := aChange.NewValueByName[fld_osc_Productsproducts_id]; + ParamByName('categories_id').Value := CATEGORIES_ID; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizOscProductServer.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 TBizOscProductServer.Update_Products_Description( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; + AIdiomasDataSet : IDADataset; + I: Integer; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_osc_Products_description'); + AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages); + try + AIdiomasDataSet.Open; + for I := 0 to AIdiomasDataSet.RecordCount - 1 do + begin + with ACommand do + begin + ParamByName('OLD_products_id').Value := aChange.OldValueByName[fld_osc_Productsproducts_id]; + ParamByName('OLD_language_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value; + ParamByName('products_name').Value := aChange.NewValueByName[fld_osc_Productsproducts_name]; + ParamByName('products_description').Value := aChange.NewValueByName[fld_osc_Productsproducts_description]; + ParamByName('products_url').Value := null; + ParamByName('products_viewed').Value := 0; + Execute; + end; + AIdiomasDataSet.Next; + end; + AIdiomasDataSet.Close; + finally + ACommand := NIL; + AIdiomasDataSet := NIL; + end; +end; + +procedure TBizOscProductServer.Update_Products_to_categories( + aChange: TDADeltaChange); +begin + // No se hace nada +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OSC_PRODUCT, TBizOscProductServer); + +end. diff --git a/Source/Modulos/Tienda web/Model/uBizOscProducts.pas b/Source/Modulos/Tienda web/Model/uBizOscProducts.pas new file mode 100644 index 00000000..71162eb4 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizOscProducts.pas @@ -0,0 +1,101 @@ +{ +=============================================================================== + 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 uBizOscProducts; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_OSC_PRODUCT = 'Client.OscProduct'; + +type + IBizOscProduct = interface(Iosc_Products) + ['{7D900965-99B4-45B1-8385-09C996819A1D}'] + function EsNuevo : Boolean; + end; + + TBizOscProduct = class(Tosc_ProductsDataTableRules, IBizOscProduct, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizOscProduct } + +uses + SysUtils, uDataTableUtils; + +constructor TBizOscProduct.Create(aDataTable: TDADataTable); +begin + inherited; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizOscProduct.Destroy; +begin + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizOscProduct.EsNuevo: Boolean; +begin + Result := (products_id < 0) +end; + +procedure TBizOscProduct.IniciarValoresNuevo; +begin + products_date_added := Now; +end; + +procedure TBizOscProduct.OnNewRecord(Sender: TDADataTable); +begin + inherited; + products_id := GetRecNo; // -1, -2, -3... + IniciarValoresNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OSC_PRODUCT, TBizOscProduct); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizTiendaWeb.pas b/Source/Modulos/Tienda web/Model/uBizTiendaWeb.pas new file mode 100644 index 00000000..89da3d09 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizTiendaWeb.pas @@ -0,0 +1,85 @@ +{ +=============================================================================== + 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 uBizTiendaWeb; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiendaWebClient_Intf; + +const + BIZ_CLIENT_TIENDAWEB = 'Client.TiendaWeb'; + BIZ_CLIENT_OSC_CUSTOMER_INFO = 'Client.OSC.CustomerInfo'; + + +type + TContenidoActualizable = (caClientes, caProveedores); + TContenidosActualizables = set of TContenidoActualizable; + + IBizTiendaWeb = interface(ITiendaWeb) + ['{0B75FCF5-66ED-43DB-877B-AD28FE48B568}'] + function EsNuevo : Boolean; + end; + + TBizTiendaWeb = class(TTiendaWebDataTableRules, IBizTiendaWeb) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresTiendaWebNueva; + function EsNuevo : Boolean; + end; + +implementation + +{ TBizTiendaWeb } + +uses + SysUtils, uDataTableUtils, uDataModuleUsuarios; + +function TBizTiendaWeb.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizTiendaWeb.IniciarValoresTiendaWebNueva; +begin + ID_EMPRESA := dmUsuarios.IDEmpresaActual; + TIENDA_ACTIVA := 0; +end; + +procedure TBizTiendaWeb.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresTiendaWebNueva; +end; + + +initialization + RegisterDataTableRules(BIZ_CLIENT_TIENDAWEB, TBizTiendaWeb); + +finalization + +end. + diff --git a/Source/Modulos/Tienda web/Model/uBizTiendaWebServer.pas b/Source/Modulos/Tienda web/Model/uBizTiendaWebServer.pas new file mode 100644 index 00000000..bfd9b3d2 --- /dev/null +++ b/Source/Modulos/Tienda web/Model/uBizTiendaWebServer.pas @@ -0,0 +1,27 @@ +unit uBizTiendaWebServer; + +interface + +uses + schTiendaWebServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_TIENDA_WEB = 'Server.TiendaWeb'; + +type + TBizTiendaWebServer = class(TTiendaWebBusinessProcessorRules) + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schTiendaWebClient_Intf, uBusinessUtils, uROClasses; + +{ TBizRemesasClienteServer } + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_TIENDA_WEB, TBizTiendaWebServer); + +end. diff --git a/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.bdsproj b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.bdsproj new file mode 100644 index 00000000..2d53a7fb --- /dev/null +++ b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiendaWeb_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/Tienda web/Plugin/TiendaWeb_plugin.dpk b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.dpk new file mode 100644 index 00000000..11fb3f2a --- /dev/null +++ b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.dpk @@ -0,0 +1,44 @@ +package TiendaWeb_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + dbexpress, + vclx, + PluginSDK_D10R, + Usuarios, + TiendaWeb_model, + TiendaWeb_controller, + TiendaWeb_view; + +contains + uPluginTiendaWeb in 'uPluginTiendaWeb.pas'; + +end. diff --git a/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.rc b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.res b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Tienda web/Plugin/TiendaWeb_plugin.res differ diff --git a/Source/Modulos/Tienda web/Plugin/uPluginTiendaWeb.dfm b/Source/Modulos/Tienda web/Plugin/uPluginTiendaWeb.dfm new file mode 100644 index 00000000..49d8df31 --- /dev/null +++ b/Source/Modulos/Tienda web/Plugin/uPluginTiendaWeb.dfm @@ -0,0 +1,100 @@ +object PluginTiendaWeb: TPluginTiendaWeb + OldCreateOrder = True + DefaultAction = actRecogerPedidos + Description = 'Tienda web' + ModuleMenu = MainMenu + ModuleName = 'TiendaWeb' + 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 actRecogerPedidos: TAction + Category = 'TiendaWeb' + Caption = 'Recoger pedidos...' + ImageIndex = 0 + OnExecute = actRecogerPedidosExecute + end + object actActualizarTienda: TAction + Category = 'TiendaWeb' + Caption = 'Actualizar tienda...' + OnExecute = actActualizarTiendaExecute + end + object actConfigurarTienda: TAction + Category = 'TiendaWeb' + Caption = 'Configurar tienda' + OnExecute = actConfigurarTiendaExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object iendaweb1: TMenuItem + Tag = 1000000 + Caption = 'Tienda web' + object Recogerpedidos1: TMenuItem + Tag = 1 + Action = actRecogerPedidos + end + object Actualizartienda1: TMenuItem + Tag = 2 + Action = actActualizarTienda + end + object N3: TMenuItem + Tag = 3 + Caption = '-' + end + object Configurartienda1: TMenuItem + Tag = 4 + Action = actConfigurarTienda + 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/Tienda web/Plugin/uPluginTiendaWeb.pas b/Source/Modulos/Tienda web/Plugin/uPluginTiendaWeb.pas new file mode 100644 index 00000000..9d2bf4f4 --- /dev/null +++ b/Source/Modulos/Tienda web/Plugin/uPluginTiendaWeb.pas @@ -0,0 +1,101 @@ +unit uPluginTiendaWeb; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCTiendaWeb = interface(IInterface) + ['{04676BE7-F0C9-4EA6-9909-1E5517C3604E}'] + end; + + TPluginTiendaWeb = class(TModuleController, IMCTiendaWeb) + actRecogerPedidos: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actActualizarTienda: TAction; + actConfigurarTienda: TAction; + Configurartienda1: TMenuItem; + Actualizartienda1: TMenuItem; + Recogerpedidos1: TMenuItem; + iendaweb1: TMenuItem; + N3: TMenuItem; + procedure actRecogerPedidosExecute(Sender: TObject); + procedure actConfigurarTiendaExecute(Sender: TObject); + procedure actActualizarTiendaExecute(Sender: TObject); + + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, uDataModuleUsuarios, + uTiendaWebController, uBizTiendaWeb, uTiendaWebViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginTiendaWeb.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginTiendaWeb.actActualizarTiendaExecute(Sender: TObject); +var + ATiendaWebController : ITiendaWebController; + ATiendaWeb : IBizTiendaWeb; +begin + ATiendaWebController := TTiendaWebController.Create; + ATiendaWeb := ATiendaWebController.Buscar(dmUsuarios.IDEmpresaActual); + ATiendaWebController.ActualizarTienda(ATiendaWeb); +end; + +procedure TPluginTiendaWeb.actConfigurarTiendaExecute(Sender: TObject); +var + ATiendaWebController : ITiendaWebController; + ATiendaWeb : IBizTiendaWeb; +begin + ATiendaWebController := TTiendaWebController.Create; + ATiendaWeb := ATiendaWebController.Buscar(dmUsuarios.IDEmpresaActual); + ATiendaWebController.Ver(ATiendaWeb); +end; + +procedure TPluginTiendaWeb.actRecogerPedidosExecute(Sender: TObject); +var + ATiendaWebController : ITiendaWebController; + ATiendaWeb : IBizTiendaWeb; +begin + ATiendaWebController := TTiendaWebController.Create; + ATiendaWeb := ATiendaWebController.Buscar(dmUsuarios.IDEmpresaActual); + ATiendaWebController.DescargarPedidos(ATiendaWeb); +end; + +constructor TPluginTiendaWeb.Create(AOwner: TComponent); +begin + inherited; + uTiendaWebViewRegister.RegisterViews; +end; + +destructor TPluginTiendaWeb.Destroy; +begin + uTiendaWebViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginTiendaWeb); + +finalization + UnRegisterModuleClass(TPluginTiendaWeb); + +end. diff --git a/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.dfm b/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.dfm new file mode 100644 index 00000000..710a698a --- /dev/null +++ b/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.dfm @@ -0,0 +1,3786 @@ +object srvTiendaWeb: TsrvTiendaWeb + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schTiendaWeb + ServiceAdapter = DABINAdapter + OnBeforeGetDatasetData = DARemoteServiceBeforeGetDatasetData + Height = 377 + Width = 583 + object schTiendaWeb: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers' + SQL = + 'SELECT'#10' customers_id, customers_firstname,'#10' customers_last' + + 'name, customers_email_address,'#10' customers_default_address_id,' + + ' customers_telephone,'#10' customers_fax, customers_password,'#10' ' + + ' rdx_customers_id_local,'#10' customers_info_date_account_created' + + ' as date_account_created,'#10' customers_info_date_account_last_m' + + 'odified as date_account_last_modified'#10' FROM'#10' customers'#10' INN' + + 'ER JOIN customers_info ON (customers_info.customers_info_id = cu' + + 'stomers.customers_id)' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'customers_firstname' + TableField = 'customers_firstname' + end + item + DatasetField = 'customers_lastname' + TableField = 'customers_lastname' + end + item + DatasetField = 'customers_email_address' + TableField = 'customers_email_address' + end + item + DatasetField = 'customers_default_address_id' + TableField = 'customers_default_address_id' + end + item + DatasetField = 'customers_telephone' + TableField = 'customers_telephone' + end + item + DatasetField = 'customers_fax' + TableField = 'customers_fax' + end + item + DatasetField = 'customers_password' + TableField = 'customers_password' + end + item + DatasetField = 'rdx_customers_id_local' + TableField = 'rdx_customers_id_local' + end + item + DatasetField = 'customers_id' + TableField = 'customers_id' + end + item + DatasetField = 'date_account_created' + TableField = 'date_account_created' + end + item + DatasetField = 'date_account_last_modified' + TableField = 'date_account_last_modified' + end> + end> + Name = 'osc_Customers' + Fields = < + item + Name = 'customers_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'osc_Customers_customers_id' + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_firstname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_lastname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_email_address' + DataType = datString + Size = 96 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_email_address' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_default_address_id' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_default_address_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_telephone' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_fax' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_fax' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_password' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_customers_password' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_Customers_rdx_customers_id_local' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_account_created' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_account_last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'MySQL' + SQL = 'SELECT last_insert_id() as last_id' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'last_id' + TableField = 'last_id' + end> + end> + Name = 'GetLastID' + Fields = < + item + Name = 'last_id' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'GetLastID_last_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'address_book' + SQL = + 'SELECT '#10' address_book_id, customers_id, entry_gender, entry_c' + + 'ompany, '#10' entry_firstname, entry_lastname, entry_street_addre' + + 'ss, '#10' entry_suburb, entry_postcode, entry_city, entry_state, ' + + #10' entry_country_id, entry_zone_id, entry_telephone,'#10' rdx_a' + + 'ddress_book_id_local'#10' FROM'#10' address_book'#10' WHERE customers_i' + + 'd = :customers_id' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'address_book_id' + TableField = 'address_book_id' + end + item + DatasetField = 'customers_id' + TableField = 'customers_id' + end + item + DatasetField = 'entry_gender' + TableField = 'entry_gender' + end + item + DatasetField = 'entry_company' + TableField = 'entry_company' + end + item + DatasetField = 'entry_firstname' + TableField = 'entry_firstname' + end + item + DatasetField = 'entry_lastname' + TableField = 'entry_lastname' + end + item + DatasetField = 'entry_street_address' + TableField = 'entry_street_address' + end + item + DatasetField = 'entry_suburb' + TableField = 'entry_suburb' + end + item + DatasetField = 'entry_postcode' + TableField = 'entry_postcode' + end + item + DatasetField = 'entry_city' + TableField = 'entry_city' + end + item + DatasetField = 'entry_state' + TableField = 'entry_state' + end + item + DatasetField = 'entry_country_id' + TableField = 'entry_country_id' + end + item + DatasetField = 'entry_zone_id' + TableField = 'entry_zone_id' + end + item + DatasetField = 'rdx_address_book_id_local' + TableField = 'rdx_address_book_id_local' + end + item + DatasetField = 'entry_telephone' + TableField = 'entry_telephone' + end> + end> + Name = 'osc_AddressBook' + Fields = < + item + Name = 'address_book_id' + DataType = datInteger + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_customers_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_gender' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_gender' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_company' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_firstname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_lastname' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_street_address' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_suburb' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_postcode' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_city' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_state' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_country_id' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_country_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_zone_id' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_entry_zone_id' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'entry_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_address_book_id_local' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'osc_AddressBook_rdx_address_book_id_local' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIENDA_WEB' + SQL = + 'SELECT'#10' ID, ID_EMPRESA, TIENDA_ACTIVA, BDSERVER, BDPORT, BDNA' + + 'ME, '#10' BDUSER, BDPASS, ULTIMA_ACTUALIZACION'#10' FROM'#10' TIENDA_' + + 'WEB' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'TIENDA_ACTIVA' + TableField = 'TIENDA_ACTIVA' + end + item + DatasetField = 'BDSERVER' + TableField = 'BDSERVER' + end + item + DatasetField = 'BDPORT' + TableField = 'BDPORT' + end + item + DatasetField = 'BDNAME' + TableField = 'BDNAME' + end + item + DatasetField = 'BDUSER' + TableField = 'BDUSER' + end + item + DatasetField = 'BDPASS' + TableField = 'BDPASS' + end + item + DatasetField = 'ULTIMA_ACTUALIZACION' + TableField = 'ULTIMA_ACTUALIZACION' + end> + end> + Name = 'TiendaWeb' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_ID_EMPRESA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIENDA_ACTIVA' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_TIENDA_ACTIVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDSERVER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_BDSERVER' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDPORT' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_BDPORT' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDNAME' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_BDNAME' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDUSER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_BDUSER' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BDPASS' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_BDPASS' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ULTIMA_ACTUALIZACION' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'TiendaWeb_ULTIMA_ACTUALIZACION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers' + SQL = + 'SELECT '#10' manufacturers_id, manufacturers_name, manufacturers_' + + 'image, '#10' date_added, last_modified, rdx_manufacturers_id_loca' + + 'l'#10' FROM'#10' manufacturers' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'manufacturers_id' + TableField = 'manufacturers_id' + end + item + DatasetField = 'manufacturers_name' + TableField = 'manufacturers_name' + end + item + DatasetField = 'manufacturers_image' + TableField = 'manufacturers_image' + end + item + DatasetField = 'date_added' + TableField = 'date_added' + end + item + DatasetField = 'last_modified' + TableField = 'last_modified' + end + item + DatasetField = 'rdx_manufacturers_id_local' + TableField = 'rdx_manufacturers_id_local' + end> + end> + Name = 'osc_Manufacturers' + Fields = < + item + Name = 'manufacturers_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DefaultValue = '0' + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_name' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DefaultValue = #39#39 + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_image' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_added' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_manufacturers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'languages' + SQL = + 'SELECT '#10' languages_id, name, code, image, directory, sort_ord' + + 'er'#10' FROM'#10' languages' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'languages_id' + TableField = 'languages_id' + end + item + DatasetField = 'name' + TableField = 'name' + end + item + DatasetField = 'code' + TableField = 'code' + end + item + DatasetField = 'image' + TableField = 'image' + end + item + DatasetField = 'directory' + TableField = 'directory' + end + item + DatasetField = 'sort_order' + TableField = 'sort_order' + end> + end> + Name = 'osc_Languages' + Description = 'Esta tabla es s'#243'lo de consulta' + Fields = < + item + Name = 'languages_id' + DataType = datInteger + BlobType = dabtUnknown + DefaultValue = '0' + Required = True + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'name' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DefaultValue = #39#39 + Required = True + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'code' + DataType = datString + Size = 2 + BlobType = dabtUnknown + DefaultValue = #39#39 + Required = True + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'image' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'directory' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'sort_order' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products' + SQL = + 'SELECT'#10' products.products_id,'#10' products_description.products_n' + + 'ame,'#10' products_description.products_description,'#10' products.pro' + + 'ducts_model,'#10' products.products_date_added,'#10' products.products' + + '_last_modified,'#10' products.products_status,'#10' products.manufactu' + + 'rers_id,'#10' products.rdx_products_id_local'#10'FROM'#10' products_descri' + + 'ption'#10' INNER JOIN products ON (products_description.products_id' + + ' = products.products_id)'#10' INNER JOIN languages ON (products_des' + + 'cription.language_id = languages.languages_id)'#10' INNER JOIN conf' + + 'iguration ON (languages.code = configuration.configuration_value' + + ')'#10'WHERE'#10' configuration.configuration_key = '#39'DEFAULT_LANGUAGE'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'products_id' + TableField = 'products_id' + end + item + DatasetField = 'products_model' + TableField = 'products_model' + end + item + DatasetField = 'products_date_added' + TableField = 'products_date_added' + end + item + DatasetField = 'products_last_modified' + TableField = 'products_last_modified' + end + item + DatasetField = 'manufacturers_id' + TableField = 'manufacturers_id' + end + item + DatasetField = 'products_name' + TableField = 'products_name' + end + item + DatasetField = 'products_description' + TableField = 'products_description' + end + item + DatasetField = 'rdx_products_id_local' + TableField = 'rdx_products_id_local' + end + item + DatasetField = 'products_status' + TableField = 'products_status' + end> + end> + Name = 'osc_Products' + Fields = < + item + Name = 'products_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DefaultValue = '0' + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_description' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_date_added' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_status' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders' + SQL = + 'SELECT'#10' orders.orders_id,'#10' orders.rdx_orders_id_local,'#10' order' + + 's.customers_id,'#10' customers.rdx_customers_id_local,'#10' orders.del' + + 'ivery_name,'#10' orders.delivery_company,'#10' orders.delivery_street_' + + 'address,'#10' orders.delivery_suburb,'#10' orders.delivery_city,'#10' ord' + + 'ers.delivery_postcode,'#10' orders.delivery_state,'#10' orders.deliver' + + 'y_country,'#10' orders.delivery_telephone,'#10' orders.last_modified,'#10 + + ' orders.date_purchased,'#10' orders.orders_status,'#10' orders.orders' + + '_date_finished,'#10' orders_status_history.comments'#10'FROM'#10' orders'#10' ' + + ' INNER JOIN orders_status_history ON'#10' ((orders_status_his' + + 'tory.orders_id = orders.orders_id) AND'#10' (orders_status_h' + + 'istory.orders_status_id = orders.orders_status))'#10' INNER JOIN cu' + + 'stomers ON (orders.customers_id = customers.customers_id)'#10'WHERE ' + + 'orders.orders_date_finished IS NULL' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'orders_id' + TableField = 'orders_id' + end + item + DatasetField = 'customers_id' + TableField = 'customers_id' + end + item + DatasetField = 'delivery_name' + TableField = 'delivery_name' + end + item + DatasetField = 'delivery_company' + TableField = 'delivery_company' + end + item + DatasetField = 'delivery_street_address' + TableField = 'delivery_street_address' + end + item + DatasetField = 'delivery_suburb' + TableField = 'delivery_suburb' + end + item + DatasetField = 'delivery_city' + TableField = 'delivery_city' + end + item + DatasetField = 'delivery_postcode' + TableField = 'delivery_postcode' + end + item + DatasetField = 'delivery_state' + TableField = 'delivery_state' + end + item + DatasetField = 'delivery_country' + TableField = 'delivery_country' + end + item + DatasetField = 'last_modified' + TableField = 'last_modified' + end + item + DatasetField = 'date_purchased' + TableField = 'date_purchased' + end + item + DatasetField = 'orders_status' + TableField = 'orders_status' + end + item + DatasetField = 'orders_date_finished' + TableField = 'orders_date_finished' + end + item + DatasetField = 'rdx_orders_id_local' + TableField = 'rdx_orders_id_local' + end + item + DatasetField = 'rdx_customers_id_local' + TableField = 'rdx_customers_id_local' + end + item + DatasetField = 'comments' + TableField = 'comments' + end + item + DatasetField = 'delivery_telephone' + TableField = 'delivery_telephone' + end> + end> + Name = 'osc_Orders' + Fields = < + item + Name = 'orders_id' + DataType = datInteger + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_orders_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_country' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'delivery_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_purchased' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_status' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_date_finished' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'comments' + DataType = datMemo + BlobType = dabtMemo + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders_products' + SQL = + 'SELECT'#10' orders_products.orders_products_id,'#10' orders_products.o' + + 'rders_id,'#10' orders_products.products_id,'#10' products.rdx_products' + + '_id_local,'#10' orders_products.products_model,'#10' orders_products.p' + + 'roducts_name,'#10' orders_products.products_price,'#10' orders_product' + + 's.final_price,'#10' orders_products.products_tax,'#10' orders_products' + + '.products_quantity'#10'FROM'#10' orders_products'#10' INNER JOIN products ' + + 'ON (orders_products.products_id = products.products_id)'#10'WHERE or' + + 'ders_products.orders_id = :orders_id' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'orders_products_id' + TableField = 'orders_products_id' + end + item + DatasetField = 'orders_id' + TableField = 'orders_id' + end + item + DatasetField = 'products_id' + TableField = 'products_id' + end + item + DatasetField = 'products_model' + TableField = 'products_model' + end + item + DatasetField = 'products_name' + TableField = 'products_name' + end + item + DatasetField = 'products_price' + TableField = 'products_price' + end + item + DatasetField = 'final_price' + TableField = 'final_price' + end + item + DatasetField = 'products_tax' + TableField = 'products_tax' + end + item + DatasetField = 'products_quantity' + TableField = 'products_quantity' + end + item + DatasetField = 'rdx_products_id_local' + TableField = 'rdx_products_id_local' + end> + end> + Name = 'osc_Orders_products' + Fields = < + item + Name = 'orders_products_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_price' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'final_price' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_tax' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'products_quantity' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders_status_history' + SQL = + 'SELECT'#10' orders_status_history.orders_status_history_id,'#10' order' + + 's_status_history.orders_id,'#10' orders.rdx_orders_id_local,'#10' orde' + + 'rs_status_history.orders_status_id,'#10' orders_status_history.date' + + '_added,'#10' orders_status_history.customer_notified,'#10' orders_stat' + + 'us_history.comments'#10'FROM'#10' orders_status_history'#10' INNER JOIN or' + + 'ders ON (orders_status_history.orders_id = orders.orders_id)'#10'WHE' + + 'RE'#10' orders_status_history.orders_id = :orders_id' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'orders_status_history_id' + TableField = 'orders_status_history_id' + end + item + DatasetField = 'orders_id' + TableField = 'orders_id' + end + item + DatasetField = 'orders_status_id' + TableField = 'orders_status_id' + end + item + DatasetField = 'date_added' + TableField = 'date_added' + end + item + DatasetField = 'customer_notified' + TableField = 'customer_notified' + end + item + DatasetField = 'comments' + TableField = 'comments' + end + item + DatasetField = 'rdx_orders_id_local' + TableField = 'rdx_orders_id_local' + end> + end> + Name = 'osc_Orders_status_history' + Fields = < + item + Name = 'orders_status_history_id' + DataType = datAutoInc + Description = #161#161#161#161#161#161' ESTE CAMPO TIENE QUE SER AUTOINC PARA QUE FUNCIONE !!!!!' + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'rdx_orders_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'orders_status_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'date_added' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'customer_notified' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'comments' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_ACTIVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDSERVER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDPORT' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDNAME' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDUSER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDPASS' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ULTIMA_ACTUALIZACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIENDA_WEB' + SQL = + 'INSERT'#10' INTO TIENDA_WEB'#10' (ID, ID_EMPRESA, TIENDA_ACTIVA, BDS' + + 'ERVER, BDPORT, BDNAME, '#10' BDUSER, BDPASS, ULTIMA_ACTUALIZACIO' + + 'N)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :TIENDA_ACTIVA, :BDSERVER, :B' + + 'DPORT, '#10' :BDNAME, :BDUSER, :BDPASS, :ULTIMA_ACTUALIZACION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_TiendaWeb' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIENDA_WEB' + SQL = 'DELETE '#10' FROM'#10' TIENDA_WEB'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_TiendaWeb' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIENDA_ACTIVA' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ULTIMA_ACTUALIZACION' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDSERVER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDPORT' + DataType = datString + Size = 20 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDNAME' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDUSER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BDPASS' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIENDA_WEB' + SQL = + 'UPDATE TIENDA_WEB'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' TIEND' + + 'A_ACTIVA = :TIENDA_ACTIVA, '#10' ULTIMA_ACTUALIZACION = :ULTIMA_A' + + 'CTUALIZACION,'#10' BDSERVER = :BDSERVER, '#10' BDPORT = :BDPORT, '#10 + + ' BDNAME = :BDNAME, '#10' BDUSER = :BDUSER, '#10' BDPASS = :BDPA' + + 'SS'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_TiendaWeb' + end + item + Params = < + item + Name = 'customers_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_email_address' + DataType = datString + Size = 96 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_default_address_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_fax' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_password' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers' + SQL = + 'INSERT'#10' INTO customers'#10' (customers_firstname,'#10' customers' + + '_lastname, customers_email_address,'#10' customers_default_addre' + + 'ss_id, customers_telephone, '#10' customers_fax, customers_passw' + + 'ord,'#10' rdx_customers_id_local)'#10' VALUES'#10' (:customers_first' + + 'name,'#10' :customers_lastname, :customers_email_address,'#10' :' + + 'customers_default_address_id, :customers_telephone, '#10' :custo' + + 'mers_fax, :customers_password,'#10' :rdx_customers_id_local)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Customers' + end + item + Params = < + item + Name = 'OLD_customers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers' + SQL = + 'DELETE '#10' FROM'#10' customers'#10' WHERE'#10' (customers_id = :OLD_cu' + + 'stomers_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Customers' + end + item + Params = < + item + Name = 'customers_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_email_address' + DataType = datString + Size = 96 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_default_address_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_fax' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customers_password' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_customers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers' + SQL = + 'UPDATE customers'#10' SET'#10' customers_firstname = :customers_firs' + + 'tname,'#10' customers_lastname = :customers_lastname,'#10' custome' + + 'rs_email_address = :customers_email_address,'#10' customers_defau' + + 'lt_address_id = :customers_default_address_id,'#10' customers_tel' + + 'ephone = :customers_telephone,'#10' customers_fax = :customers_fa' + + 'x,'#10' customers_password = :customers_password,'#10' rdx_custome' + + 'rs_id_local = :rdx_customers_id_local'#10' WHERE'#10' (customers_id ' + + '= :OLD_customers_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Customers' + end + item + Params = < + item + Name = 'customers_info_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_customers_info_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers_info' + SQL = + 'INSERT'#10' INTO customers_info'#10' (customers_info_id, customers_i' + + 'nfo_date_account_created,'#10' customers_info_number_of_logons,'#10 + + ' rdx_customers_info_id_local)'#10' VALUES'#10' (:customers_info_' + + 'id,'#10' CURRENT_TIMESTAMP,'#10' 0,'#10' :rdx_customers_info_id_' + + 'local)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Customers_info' + end + item + Params = < + item + Name = 'OLD_customers_info_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers_info' + SQL = + 'DELETE '#10' FROM'#10' customers_info'#10' WHERE'#10' (customers_info_id' + + ' = :OLD_customers_info_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Customers_info' + end + item + Params = < + item + Name = 'rdx_customers_info_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_customers_info_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'customers_info' + SQL = + 'UPDATE customers_info'#10' SET'#10' customers_info_date_account_last' + + '_modified = CURRENT_TIMESTAMP(),'#10' rdx_customers_info_id_local' + + ' = :rdx_customers_info_id_local'#10' WHERE'#10' (customers_info_id =' + + ' :OLD_customers_info_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Customers_info' + end + item + Params = < + item + Name = 'customers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_gender' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_country_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_zone_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_address_book_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'address_book' + SQL = + 'INSERT'#10' INTO address_book'#10' (customers_id, entry_gender, entr' + + 'y_company, entry_firstname,'#10' entry_lastname, entry_street_ad' + + 'dress, entry_suburb, '#10' entry_postcode, entry_city, entry_sta' + + 'te, entry_country_id, '#10' entry_zone_id, entry_telephone, rdx_' + + 'address_book_id_local)'#10' VALUES'#10' (:customers_id, :entry_gende' + + 'r, :entry_company, :entry_firstname,'#10' :entry_lastname, :entr' + + 'y_street_address, :entry_suburb, '#10' :entry_postcode, :entry_c' + + 'ity, :entry_state, :entry_country_id, '#10' :entry_zone_id, :ent' + + 'ry_telephone, :rdx_address_book_id_local)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AddressBook' + end + item + Params = < + item + Name = 'OLD_address_book_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'address_book' + SQL = + 'DELETE '#10' FROM'#10' address_book'#10' WHERE'#10' (address_book_id = :' + + 'OLD_address_book_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AddressBook' + end + item + Params = < + item + Name = 'entry_gender' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_country_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_zone_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'entry_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_address_book_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_address_book_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'address_book' + SQL = + 'UPDATE address_book'#10' SET'#10' entry_gender = :entry_gender,'#10' ' + + 'entry_company = :entry_company,'#10' entry_firstname = :entry_fir' + + 'stname,'#10' entry_lastname = :entry_lastname,'#10' entry_street_a' + + 'ddress = :entry_street_address,'#10' entry_suburb = :entry_suburb' + + ','#10' entry_postcode = :entry_postcode,'#10' entry_city = :entry_' + + 'city,'#10' entry_state = :entry_state,'#10' entry_country_id = :en' + + 'try_country_id,'#10' entry_zone_id = :entry_zone_id,'#10' entry_te' + + 'lephone = :entry_telephone,'#10' rdx_address_book_id_local = :rdx' + + '_address_book_id_local'#10' WHERE'#10' (address_book_id = :OLD_addre' + + 'ss_book_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AddressBook' + end + item + Params = < + item + Name = 'manufacturers_name' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end + item + Name = 'rdx_manufacturers_id_local' + BlobType = dabtUnknown + Value = '' + ParamType = daptUnknown + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers' + SQL = + 'INSERT'#10' INTO manufacturers'#10' (manufacturers_name,'#10' date_a' + + 'dded, last_modified, rdx_manufacturers_id_local)'#10' VALUES'#10' (:' + + 'manufacturers_name, CURRENT_TIMESTAMP,'#10' null, :rdx_manufactu' + + 'rers_id_local)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Manufacturers' + end + item + Params = < + item + Name = 'OLD_manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers' + SQL = + 'DELETE '#10' FROM'#10' manufacturers'#10' WHERE'#10' (manufacturers_id =' + + ' :OLD_manufacturers_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Manufacturers' + end + item + Params = < + item + Name = 'manufacturers_name' + DataType = datString + Size = 32 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'manufacturers_image' + DataType = datString + Size = 64 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'date_added' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'last_modified' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_manufacturers_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers' + SQL = + 'UPDATE manufacturers'#10' SET '#10' manufacturers_name = :manufactur' + + 'ers_name,'#10' manufacturers_image = :manufacturers_image, '#10' d' + + 'ate_added = :date_added, '#10' last_modified = :last_modified, '#10' ' + + ' rdx_manufacturers_id_local = :rdx_manufacturers_id_local'#10' WH' + + 'ERE'#10' (manufacturers_id = :OLD_manufacturers_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Manufacturers' + end + item + Params = < + item + Name = 'manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'languages_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'manufacturers_url' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'url_clicked' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'date_last_click' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers_info' + SQL = + 'INSERT'#10' INTO manufacturers_info'#10' (manufacturers_id, language' + + 's_id, manufacturers_url, '#10' url_clicked, date_last_click)'#10' V' + + 'ALUES'#10' (:manufacturers_id, :languages_id, :manufacturers_url,' + + ' '#10' :url_clicked, :date_last_click)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Manufacturers_info' + end + item + Params = < + item + Name = 'OLD_manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_languages_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers_info' + SQL = + 'DELETE '#10' FROM'#10' manufacturers_info'#10' WHERE'#10' (manufacturers' + + '_id = :OLD_manufacturers_id) AND '#10' (languages_id = :OLD_langu' + + 'ages_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Manufacturers_info' + end + item + Params = < + item + Name = 'manufacturers_url' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'url_clicked' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'date_last_click' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_languages_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'manufacturers_info' + SQL = + 'UPDATE manufacturers_info'#10' SET '#10' manufacturers_url = :manufa' + + 'cturers_url,'#10' url_clicked = :url_clicked, '#10' date_last_clic' + + 'k = :date_last_click'#10' WHERE'#10' (manufacturers_id = :OLD_manufa' + + 'cturers_id) AND '#10' (languages_id = :OLD_languages_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Manufacturers_info' + end + item + Params = < + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_status' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products' + SQL = + 'INSERT'#10' INTO products'#10' (products_model, products_status,'#10' ' + + ' products_date_added, products_last_modified,'#10' manufacturer' + + 's_id, rdx_products_id_local)'#10' VALUES'#10' (:products_model, :pro' + + 'ducts_status, current_timestamp, null,'#10' :manufacturers_id, :' + + 'rdx_products_id_local)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Products' + end + item + Params = < + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products' + SQL = + 'DELETE '#10' FROM'#10' products'#10' WHERE'#10' (products_id = :OLD_prod' + + 'ucts_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Products' + end + item + Params = < + item + Name = 'products_model' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_status' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'manufacturers_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_products_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products' + SQL = + 'UPDATE products SET'#10' products_model = :products_model,'#10' pr' + + 'oducts_status = :products_status,'#10' products_last_modified = c' + + 'urrent_timestamp,'#10' manufacturers_id = :manufacturers_id,'#10' ' + + 'rdx_products_id_local = :rdx_products_id_local'#10' WHERE'#10' (prod' + + 'ucts_id = :OLD_products_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Products' + end + item + Params = < + item + Name = 'products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'categories_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_to_categories' + SQL = + 'INSERT'#10' INTO products_to_categories'#10' (products_id, categorie' + + 's_id)'#10' VALUES'#10' (:products_id, :categories_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Products_to_categories' + end + item + Params = < + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_categories_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_to_categories' + SQL = + 'DELETE '#10' FROM'#10' products_to_categories'#10' WHERE'#10' (products_' + + 'id = :OLD_products_id) AND '#10' (categories_id = :OLD_categories' + + '_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Products_to_categories' + end + item + Params = < + item + Name = 'products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'categories_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_categories_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_to_categories' + SQL = + 'UPDATE products_to_categories'#10' SET '#10' products_id = :products' + + '_id, '#10' categories_id = :categories_id'#10' WHERE'#10' (products_i' + + 'd = :OLD_products_id) AND '#10' (categories_id = :OLD_categories_' + + 'id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Products_to_categories' + end + item + Params = < + item + Name = 'products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'language_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_description' + DataType = datString + Size = 65535 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_url' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_viewed' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_description' + SQL = + 'INSERT'#10' INTO products_description'#10' (products_id, language_id' + + ', products_name, products_description, '#10' products_url, produ' + + 'cts_viewed)'#10' VALUES'#10' (:products_id, :language_id, :products_' + + 'name, :products_description, '#10' :products_url, :products_view' + + 'ed)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Products_description' + end + item + Params = < + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_language_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_description' + SQL = + 'DELETE '#10' FROM'#10' products_description'#10' WHERE'#10' (products_id' + + ' = :OLD_products_id) AND '#10' (language_id = :OLD_language_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Products_description' + end + item + Params = < + item + Name = 'products_name' + DataType = datString + Size = 64 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_description' + DataType = datString + Size = 65535 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_url' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'products_viewed' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_products_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_language_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'products_description' + SQL = + 'UPDATE products_description'#10' SET '#10' products_name = :products' + + '_name,'#10' products_description = :products_description, '#10' pr' + + 'oducts_url = :products_url, '#10' products_viewed = :products_vie' + + 'wed'#10' WHERE'#10' (products_id = :OLD_products_id) AND '#10' (langu' + + 'age_id = :OLD_language_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Products_description' + end + item + Params = < + item + Name = 'OLD_orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders' + SQL = + 'DELETE '#10' FROM'#10' orders'#10' WHERE'#10' (orders_id = :OLD_orders_i' + + 'd)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Orders' + end + item + Params = < + item + Name = 'orders_status' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'orders_date_finished' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'rdx_orders_id_local' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders' + SQL = + 'UPDATE orders'#10' SET '#10' last_modified = current_timestamp,'#10' ' + + 'orders_status = :orders_status,'#10' orders_date_finished = :orde' + + 'rs_date_finished, '#10' rdx_orders_id_local = :rdx_orders_id_loca' + + 'l'#10' WHERE'#10' (orders_id = :OLD_orders_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Orders' + end + item + Params = < + item + Name = 'orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'orders_status_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'customer_notified' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'comments' + DataType = datString + Size = 65535 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders_status_history' + SQL = + 'INSERT'#10' INTO orders_status_history'#10' (orders_id, orders_statu' + + 's_id, date_added, customer_notified, '#10' comments)'#10' VALUES'#10' ' + + ' (:orders_id, :orders_status_id, CURRENT_TIMESTAMP, :customer_n' + + 'otified,'#10' :comments)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_osc_Orders_status_history' + end + item + Params = < + item + Name = 'OLD_orders_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders_status_history' + SQL = + 'DELETE '#10' FROM'#10' orders_status_history'#10' WHERE'#10' (orders_id ' + + '= :OLD_orders_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_osc_Orders_status_history' + end + item + Params = < + item + Name = 'customer_notified' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'comments' + DataType = datString + Size = 65535 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_orders_status_history_id' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'MySQL' + TargetTable = 'orders_status_history' + SQL = + 'UPDATE orders_status_history'#10' SET '#10' customer_notified = :cus' + + 'tomer_notified,'#10' comments = :comments, '#10' WHERE'#10' (orders_s' + + 'tatus_history_id = :OLD_orders_status_history_id)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_osc_Orders_status_history' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert_Update_osc_Customers' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Customers' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Customers_info' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Customers_info' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_AddressBook' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_AddressBook' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_AddressBook' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_AddressBook' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Customers_info' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Customers_info' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Customers' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Customers' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Manufacturers' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Manufacturers' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Manufacturers_info' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Manufacturers_info' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Manufacturers_info' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Manufacturers_info' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Manufacturers' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Manufacturers' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Products' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Products' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Products_to_categories' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Products_to_categories' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Products_description' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'osc_Products_description' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Products_description' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Products_description' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Products_to_categories' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Products_to_categories' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Products' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Products' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Orders' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Orders' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Orders_products' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Orders_products' + FailureBehaviour = fbRaiseException + end + item + Name = 'Insert_Update_osc_Orders_status_history' + DoUpdate = True + DoInsert = True + DoDelete = False + DatasetName = 'osc_Orders_status_history' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Orders_status_history' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Orders_status_history' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Orders_products' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Orders_products' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete osc_Orders' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'osc_Orders' + FailureBehaviour = fbRaiseException + end> + Left = 46 + Top = 14 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'TiendaWeb_ID' + DataType = datAutoInc + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ID' + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_TIENDA_ACTIVA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_BDSERVER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_BDPORT' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_BDNAME' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_BDUSER' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_BDPASS' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TiendaWeb_ULTIMA_ACTUALIZACION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_firstname' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_dob' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_dob' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_lastname' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_email_address' + DataType = datString + Size = 96 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_email_address' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_telephone' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_telephone' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_fax' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_fax' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_password' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_password' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_rdx_customers_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'rdx_customers_id_local' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_customers_default_address_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_default_address_id' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_info_date_account_created' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'date_account_created' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_info_date_account_last_modified' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'date_account_last_modified' + Alignment = taLeftJustify + end + item + Name = 'osc_Customers_info_rdx_customers_info_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'rdx_customers_info_id_local' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_customers_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'customers_id' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_gender' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_gender' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_company' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_company' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_firstname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_firstname' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_lastname' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_lastname' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_street_address' + DataType = datString + Size = 64 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_street_address' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_suburb' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_suburb' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_postcode' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_postcode' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_city' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_city' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_state' + DataType = datString + Size = 32 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_state' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_country_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_country_id' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_entry_zone_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'entry_zone_id' + Alignment = taLeftJustify + end + item + Name = 'osc_AddressBook_rdx_address_book_id_local' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'rdx_address_book_id_local' + Alignment = taLeftJustify + end + item + Name = 'GetLastID_last_id' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'last_id' + Alignment = taLeftJustify + end> + Left = 147 + Top = 14 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object Diagrams: TDADiagrams + Left = 150 + Top = 80 + DiagramData = + ''#13#10' '#13#10' '#13#10''#13#10 + end + object bpTiendaWeb: TDABusinessProcessor + Schema = schTiendaWeb + InsertCommandName = 'Insert_TiendaWeb' + DeleteCommandName = 'Delete_TiendaWeb' + UpdateCommandName = 'Update_TiendaWeb' + ReferencedDataset = 'TiendaWeb' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 264 + Top = 22 + end + object bp_osc_Customers: TDABusinessProcessor + OnGenerateSQL = bp_osc_CustomersGenerateSQL + Schema = schTiendaWeb + InsertCommandName = 'Insert_Customers' + DeleteCommandName = 'Delete_Customers' + UpdateCommandName = 'Update_Customers' + ReferencedDataset = 'osc_Customers' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 384 + Top = 22 + end + object bp_osc_AddressBook: TDABusinessProcessor + Schema = schTiendaWeb + InsertCommandName = 'Insert_AddressBook' + DeleteCommandName = 'Delete_AddressBook' + UpdateCommandName = 'Update_AddressBook' + ReferencedDataset = 'osc_AddressBook' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 384 + Top = 86 + end + object bp_osc_Manufacturers: TDABusinessProcessor + Schema = schTiendaWeb + InsertCommandName = 'Insert_osc_Manufacturers' + DeleteCommandName = 'Delete_osc_Manufacturers' + UpdateCommandName = 'Update_osc_Manufacturers' + ReferencedDataset = 'osc_Manufacturers' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 496 + Top = 22 + end + object bp_osc_Products: TDABusinessProcessor + Schema = schTiendaWeb + InsertCommandName = 'Insert_osc_Products' + DeleteCommandName = 'Delete_osc_Products' + UpdateCommandName = 'Update_osc_Products' + ReferencedDataset = 'osc_Products' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 496 + Top = 86 + end + object bp_osc_Orders: TDABusinessProcessor + Schema = schTiendaWeb + DeleteCommandName = 'Delete_osc_Orders' + UpdateCommandName = 'Update_osc_Orders' + ReferencedDataset = 'osc_Orders' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 48 + Top = 166 + end + object bp_osc_Orders_status_history: TDABusinessProcessor + Schema = schTiendaWeb + InsertCommandName = 'Insert_osc_Orders_status_history' + DeleteCommandName = 'Delete_osc_Orders_status_history' + UpdateCommandName = 'Update_osc_Orders_status_history' + ReferencedDataset = 'osc_Orders_status_history' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 48 + Top = 238 + end +end diff --git a/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.pas b/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.pas new file mode 100644 index 00000000..0ae88bba --- /dev/null +++ b/Source/Modulos/Tienda web/Servidor/srvTiendaWeb_Impl.pas @@ -0,0 +1,163 @@ +unit srvTiendaWeb_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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, + uDAInterfaces; + +const + MYSQL_DATEFORMAT = 'yyyy-mm-dd hh:mm:ss'; + +type + { TsrvTiendaWeb } + TsrvTiendaWeb = class(TDARemoteService, IsrvTiendaWeb) + DABINAdapter: TDABINAdapter; + Diagrams: TDADiagrams; + bpTiendaWeb: TDABusinessProcessor; + bp_osc_Customers: TDABusinessProcessor; + bp_osc_AddressBook: TDABusinessProcessor; + bp_osc_Manufacturers: TDABusinessProcessor; + bp_osc_Products: TDABusinessProcessor; + bp_osc_Orders: TDABusinessProcessor; + bp_osc_Orders_status_history: TDABusinessProcessor; + schTiendaWeb: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure bp_osc_CustomersGenerateSQL(Sender: TDABusinessProcessor; + ChangeType: TDAChangeType; const ReferencedStatement: TDAStatement; + const aDelta: IDADelta; var SQL: string); + private + procedure AsignarConexion (const AConnectionName: string); + protected + function GetNextAutoInc(const GeneratorName: String): Integer; + function GetNextAutoIncOSC(const TableName: String): Integer; + function GetDatasetSchemaOSC(const aDatasetName: String): Binary; + function GetDatasetDataExOSC(const DatasetName: String; const Params: TDADatasetParamArray; const UserFilter: String; const IncludeSchema: Boolean; + const MaxRecords: Integer): Binary; + function UpdateDataOSC(const Delta: Binary): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, schTiendaWebClient_Intf, + uDatabaseUtils, uRestriccionesUsuarioUtils, Dialogs, uBizTiendaWebServer, + uBizOscCustomerServer, uBizOscAddressBookServer, uBizOscManufacturerServer, + uBizOscProductServer, uUsersManager, uBizOscOrderServer; + +procedure Create_srvTiendaWeb(out anInstance : IUnknown); +begin + anInstance := TsrvTiendaWeb.Create(NIL); +end; + +{ srvTiendaWeb } +procedure TsrvTiendaWeb.AsignarConexion(const AConnectionName: string); +begin + // En el caso de conexión MySQL también solicito otra conexión nueva + // para evitar problemas. + if (AConnectionName <> Self.ConnectionName) or (AConnectionName = 'MySQL') then + begin + if Connection.InTransaction then + Connection.CommitTransaction; + + Self.ConnectionName := AConnectionName; + Connection := dmServer.ConnectionManager.NewConnection(AConnectionName, False); + end; +end; + +procedure TsrvTiendaWeb.bp_osc_CustomersGenerateSQL( + Sender: TDABusinessProcessor; ChangeType: TDAChangeType; + const ReferencedStatement: TDAStatement; const aDelta: IDADelta; + var SQL: string); +begin + dmServer.EscribirLog(SQL + #10#13 + #10#13); +end; + +procedure TsrvTiendaWeb.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_TiendaWeb then + begin + { Aquí se asegura que el usuario sólo accede a los RemesasCliente + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, dmServer.DarNuevaConexion, schTiendaWeb, DataSet, fld_TiendaWebID_EMPRESA); + end; +end; + +procedure TsrvTiendaWeb.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; + bpTiendaWeb.BusinessRulesID := BIZ_SERVER_TIENDA_WEB; + bp_osc_Customers.BusinessRulesID := BIZ_SERVER_OSC_CUSTOMER; + bp_osc_AddressBook.BusinessRulesID := BIZ_SERVER_OSC_ADDRESSBOOK; + bp_osc_Manufacturers.BusinessRulesID := BIZ_SERVER_OSC_MANUFACTURER; + bp_osc_Products.BusinessRulesID := BIZ_SERVER_OSC_PRODUCT; + bp_osc_Orders.BusinessRulesID := BIZ_SERVER_OSC_ORDER; +end; + +function TsrvTiendaWeb.GetDatasetDataExOSC(const DatasetName: String; + const Params: TDADatasetParamArray; const UserFilter: String; + const IncludeSchema: Boolean; const MaxRecords: Integer): Binary; +begin + AsignarConexion('MySQL'); + Result := GetDatasetDataEx(DatasetName, Params, UserFilter, IncludeSchema, MaxRecords); +end; + +function TsrvTiendaWeb.GetDatasetSchemaOSC(const aDatasetName: String): Binary; +begin + AsignarConexion('MySQL'); + Result := GetDatasetSchema(aDatasetName); +end; + +function TsrvTiendaWeb.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +end; + +function TsrvTiendaWeb.GetNextAutoIncOSC(const TableName: String): Integer; +var + vConn : IDAConnection; + ds: IDADataset; +begin + vConn := dmServer.ConnectionManager.NewConnection('MySQL'); + vConn.BeginTransaction; + try + ds := vConn.NewDataset(Format('SHOW TABLE STATUS WHERE NAME=''%s''', [TableName])); + ds.Open; + Result := ds.FieldByName('Auto_increment').AsInteger; + finally + vConn.CommitTransaction; + ds := NIL; + end; +end; + +function TsrvTiendaWeb.UpdateDataOSC(const Delta: Binary): Binary; +begin + AsignarConexion('MySQL'); + Result := UpdateData(Delta); +end; + +initialization + TROClassFactory.Create('srvTiendaWeb', Create_srvTiendaWeb, TsrvTiendaWeb_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Tienda web/Test/Contactos_data.drc b/Source/Modulos/Tienda web/Test/Contactos_data.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/Contactos_data.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.bdsproj b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.bdsproj new file mode 100644 index 00000000..573b4ed0 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + TiendaWeb_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;TiendaWeb_model;TiendaWeb_controller;TiendaWeb_view + _CONSOLE_TESTRUNNER; + T:\Codigo (Luis Leon)\Modulos\Pedidos de cliente\Controller\;T:\Codigo (Luis Leon)\Modulos\Pedidos de cliente\Model\;T:\Codigo (Luis Leon)\Modulos\Articulos\Controller\ + 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/Tienda web/Test/TiendaWeb_Tests.dpr b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.dpr new file mode 100644 index 00000000..e47b1363 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.dpr @@ -0,0 +1,41 @@ +program TiendaWeb_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 + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uTiendaWebViewRegister, + uDataModuleUsuarios, + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}, + uOscCustomersController_test in 'uOscCustomersController_test.pas', + uTiendaWebController_test in 'uTiendaWebController_test.pas'; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + uTiendaWebViewRegister.RegisterViews; + if dmUsuarios.Login then + begin + dmUsuarios.IDEmpresaActual := 1; + Application.Run; + end; + Application.Terminate; +end. + diff --git a/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.drc b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.drc new file mode 100644 index 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + diff --git a/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.res b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.res new file mode 100644 index 00000000..759b21ba Binary files /dev/null and b/Source/Modulos/Tienda web/Test/TiendaWeb_Tests.res differ diff --git a/Source/Modulos/Tienda web/Test/cxIntlPrintSys3D10.drc b/Source/Modulos/Tienda web/Test/cxIntlPrintSys3D10.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/cxIntlPrintSys3D10.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Tienda web/Test/uDataModuleContactos_Test.pas b/Source/Modulos/Tienda web/Test/uDataModuleContactos_Test.pas new file mode 100644 index 00000000..190dc72c --- /dev/null +++ b/Source/Modulos/Tienda web/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 válido ID=%d', [ID])); + CheckEquals('Cliente', Categoria); + + NIF_CIF := '1234567890-X'; + NOMBRE := 'David Arranz Puerta'; + CALLE := 'Dehesa de Vicálvaro, 47 2ºC'; + 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 válido 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/Tienda web/Test/uHostMainForm.dfm b/Source/Modulos/Tienda web/Test/uHostMainForm.dfm new file mode 100644 index 00000000..1de986c4 --- /dev/null +++ b/Source/Modulos/Tienda web/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/Tienda web/Test/uHostMainForm.pas b/Source/Modulos/Tienda web/Test/uHostMainForm.pas new file mode 100644 index 00000000..f036830a --- /dev/null +++ b/Source/Modulos/Tienda web/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/Tienda web/Test/uOscCustomersController_test.pas b/Source/Modulos/Tienda web/Test/uOscCustomersController_test.pas new file mode 100644 index 00000000..4dfc3b46 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/uOscCustomersController_test.pas @@ -0,0 +1,219 @@ +unit uOscCustomersController_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, uCustomEditor, + uOscCustomersController, uOscAddressBookController, + uBizOscCustomers, uBizOscAddressBook; + +type + // Test methods for class TClientesController + + TestTOscCustomersController = class(TTestCase) + strict private + FOscCustomersController: IOscCustomersController; + 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 TestNuevoConDireccionesYSalvar; + procedure RecuperarUnCliente; + end; + +implementation + +uses + schTiendaWebClient_Intf, uDADataTable, + SysUtils, Dialogs, uIDataModuleTiendaWeb, + uDataModuleTiendaWeb, uTiendaWebViewRegister, uHostMainForm; + +constructor TestTOscCustomersController.Create(MethodName: string); +begin + inherited; + +end; + +destructor TestTOscCustomersController.Destroy; +begin + //uContactosViewRegister.UnRegisterViews; + inherited; +end; + +procedure TestTOscCustomersController.RecuperarUnCliente; +var + ACustomer : IBizOscCustomer; +begin + ACustomer := FOscCustomersController.Buscar(400) as IBizOscCustomer; + CheckNotNull(ACustomer, 'Cliente ID=400 no encontrado'); +// FOscCustomersController.Ver(ACustomer); +end; + +procedure TestTOscCustomersController.SetUp; +begin + FOscCustomersController := TOscCustomersController.Create; +end; + +procedure TestTOscCustomersController.TearDown; +begin + FOscCustomersController := nil; +end; + +procedure TestTOscCustomersController.TestListar; +var + ACustomer : IBizOscCustomer; +begin + ACustomer := (FOscCustomersController.BuscarTodos as IBizOscCustomer); +// FOscCustomersController.VerTodos(ACustomer); +end; + +procedure TestTOscCustomersController.TestVer; +begin + CheckTrue(False); + // TODO: Validate method results +end; + +procedure TestTOscCustomersController.TestNuevo; +{var + ACustomer: IBizOscCustomer;} +begin +{ ACustomer := (FOscCustomersController.Nuevo as IBizOscCustomer); + Check(Assigned(ACustomer), 'Cliente no creado'); + Check(ACustomer.ID < 0, 'Cliente creado pero con ID incorrecto'); + CheckEquals('Cliente', ACustomer.Categoria, 'No es un cliente'); + Check(Assigned(ACustomer.DatosBancarios), 'Al cliente le faltan los datos bancarios'); + FOscCustomersController.Ver(ACustomer);} +end; + +procedure TestTOscCustomersController.TestNuevoYSalvar; +var + ACustomer: IBizOscCustomer; +begin + ACustomer := (FOscCustomersController.Nuevo as IBizOscCustomer); + with ACustomer do + begin + Edit; + customers_firstname := 'First Name'; + customers_lastname := 'Last Name'; + customers_email_address := 'email@address.com'; + customers_telephone := '9182828282'; + customers_fax := '937373733'; + customers_password := 'aaaa'; + Post; + end; + + FOscCustomersController.Guardar(ACustomer); + + Check(ACustomer.customers_id >= 0, 'ID no asignado correctamente al contacto'); + Check(False, 'ID asignado = ' + IntToStr(ACustomer.customers_id)); +end; + +procedure TestTOscCustomersController.TestNuevoConDireccionesYSalvar; +var + ACustomer: IBizOscCustomer; + I: Integer; +begin + ACustomer := (FOscCustomersController.Nuevo as IBizOscCustomer); + with ACustomer do + begin + Edit; + customers_firstname := 'First Name'; + customers_lastname := 'Last Name'; + customers_email_address := 'email@address.com'; + customers_telephone := '9182828282'; + customers_fax := '937373733'; + customers_password := 'aaaa'; + Post; + end; + + with ACustomer.AddressBook do + begin + Check(Assigned(ACustomer.AddressBook), 'AddressBook no creado'); + for i := 1 to 5 do + begin + Insert; + Check(address_book_id < 0, 'Datos bancarios nuevo pero con ID incorrecto'); + entry_gender := 'M'; + entry_company := 'Company ' + IntToStr(i); + entry_firstname := 'Firstname ' + IntToStr(i); + entry_lastname := 'Lastname ' + IntToStr(i); + entry_street_address := 'Street Address ' + IntToStr(i); + entry_suburb := 'Suburb ' + IntToStr(i); + entry_postcode := '1234 ' + IntToStr(i); + entry_city := 'City ' + IntToStr(i); + entry_state := 'State ' + IntToStr(i); + Post; + end; + end; + + FOscCustomersController.Guardar(ACustomer); + + Check(ACustomer.customers_id >= 0, 'ID no asignado correctamente al contacto'); + Check((ACustomer.AddressBook.RecordCount = 5), 'Faltan filas de direcciones'); + + for i := 0 to ACustomer.AddressBook.RecordCount - 1 do + begin + + ShowMessage('ID asignado = ' + IntToStr(ACustomer.AddressBook.address_book_id)); + ACustomer.AddressBook.Next; + end; + + ACustomer.Edit; + ACustomer.customers_default_address_id := ACustomer.AddressBook.address_book_id; + ACustomer.Post; + + FOscCustomersController.Guardar(ACustomer); +end; + +procedure TestTOscCustomersController.TestNuevoYVer; +{var + ACustomer: IBizOscCustomer;} +begin +{ CheckTrue(False); + ACustomer := (FOscCustomersController.Nuevo as IBizOscCustomer);} +end; + +procedure TestTOscCustomersController.TestEncontrar; +var + ReturnValue: Boolean; + ID: Integer; +begin + CheckTrue(False); + // TODO: Setup method call parameters +// ReturnValue := FOscCustomersController.ExisteContacto(ID); + // TODO: Validate method results +end; + +procedure TestTOscCustomersController.TestSalvar; +var + AContacto: IBizOscCustomer; +begin + CheckTrue(False); + // TODO: Setup method call parameters +// FOscCustomersController.Salvar(AContacto); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTOscCustomersController.Suite); +end. + diff --git a/Source/Modulos/Tienda web/Test/uTiendaWebController_test.pas b/Source/Modulos/Tienda web/Test/uTiendaWebController_test.pas new file mode 100644 index 00000000..e323cf4b --- /dev/null +++ b/Source/Modulos/Tienda web/Test/uTiendaWebController_test.pas @@ -0,0 +1,72 @@ +unit uTiendaWebController_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, uCustomEditor, + uTiendaWebController, uBizTiendaWeb; + +type + // Test methods for class TClientesController + + TestTTiendaWebController = class(TTestCase) + strict private + FTiendaWebController: ITiendaWebController; + FTiendaWeb : IBizTiendaWeb; + public + procedure SetUp; override; + procedure TearDown; override; + + published + procedure TestActualizarTienda; + procedure TestDescargarPedidos; + end; + +implementation + +uses + schTiendaWebClient_Intf, uDADataTable, uDataModuleUsuarios, + SysUtils, Dialogs, uIDataModuleTiendaWeb, + uDataModuleTiendaWeb, uTiendaWebViewRegister, uHostMainForm, + uClientesController, uBizContactos; + +{ TestTTiendaWebController } + +procedure TestTTiendaWebController.SetUp; +begin + inherited; + FTiendaWebController := TTiendaWebController.Create; + FTiendaWeb := FTiendaWebController.Buscar(dmUsuarios.IDEmpresaActual); +end; + +procedure TestTTiendaWebController.TearDown; +begin + inherited; + FTiendaWebController := NIL; + FTiendaWeb := NIL; +end; + +procedure TestTTiendaWebController.TestActualizarTienda; +begin + FTiendaWebController.ActualizarTienda(FTiendaWeb); +end; + +procedure TestTTiendaWebController.TestDescargarPedidos; +begin + FTiendaWebController.DescargarPedidos(FTiendaWeb); +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTTiendaWebController.Suite); +end. + diff --git a/Source/Modulos/Tienda web/Test/vclie.drc b/Source/Modulos/Tienda web/Test/vclie.drc new file mode 100644 index 00000000..686f8580 --- /dev/null +++ b/Source/Modulos/Tienda web/Test/vclie.drc @@ -0,0 +1,10 @@ +/* VER180 + Generated by the Borland 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. +*/ + diff --git a/Source/Modulos/Tienda web/TiendaWeb_Group.bdsgroup b/Source/Modulos/Tienda web/TiendaWeb_Group.bdsgroup new file mode 100644 index 00000000..348d3e80 --- /dev/null +++ b/Source/Modulos/Tienda web/TiendaWeb_Group.bdsgroup @@ -0,0 +1,28 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + Model\TiendaWeb_model.bdsproj + Data\TiendaWeb_data.bdsproj + Controller\TiendaWeb_controller.bdsproj + Views\TiendaWeb_view.bdsproj + Plugin\TiendaWeb_plugin.bdsproj + Test\TiendaWeb_Tests.bdsproj + ..\..\Cliente\FactuGES.bdsproj + ..\..\Servidor\FactuGES_Server.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl TiendaWeb_model.bpl TiendaWeb_data.bpl TiendaWeb_controller.bpl TiendaWeb_view.bpl TiendaWeb_plugin.bpl TiendaWeb_Tests.exe FactuGES.exe FactuGES_Server.exe + + + + diff --git a/Source/Modulos/Tienda web/TiendaWeb_Group.config b/Source/Modulos/Tienda web/TiendaWeb_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Modulos/Tienda web/TiendaWeb_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Tienda web/Views/TiendaWeb_view.bdsproj b/Source/Modulos/Tienda web/Views/TiendaWeb_view.bdsproj new file mode 100644 index 00000000..244e0a60 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/TiendaWeb_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiendaWeb_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/Tienda web/Views/TiendaWeb_view.dpk b/Source/Modulos/Tienda web/Views/TiendaWeb_view.dpk new file mode 100644 index 00000000..6d8ef7ac --- /dev/null +++ b/Source/Modulos/Tienda web/Views/TiendaWeb_view.dpk @@ -0,0 +1,83 @@ +package TiendaWeb_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + Base, + GUIBase, + TiendaWeb_model, + TiendaWeb_data, + TiendaWeb_controller, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tbx_d10, + tb2k_d10, + dxLayoutControlD10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvStdCtrlsD10R, + GUISDK_D10, + ccpack10, + cfpack_d10, + JvAppFrmD10R, + JvPageCompsD10R, + EasyListviewD10, + MPCommonLibD10; + +contains + uTiendaWebViewRegister in 'uTiendaWebViewRegister.pas', + uEditorTiendaWeb in 'uEditorTiendaWeb.pas' {fEditorTiendaWeb: TForm}, + uEditorActualizarTiendaWeb in 'uEditorActualizarTiendaWeb.pas' {fEditorActualizarTiendaWeb}; + +end. diff --git a/Source/Modulos/Tienda web/Views/TiendaWeb_view.rc b/Source/Modulos/Tienda web/Views/TiendaWeb_view.rc new file mode 100644 index 00000000..e69de29b diff --git a/Source/Modulos/Tienda web/Views/TiendaWeb_view.res b/Source/Modulos/Tienda web/Views/TiendaWeb_view.res new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Modulos/Tienda web/Views/TiendaWeb_view.res differ diff --git a/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.dfm b/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.dfm new file mode 100644 index 00000000..a400ef02 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.dfm @@ -0,0 +1,187 @@ +inherited fEditorTiendaWeb: TfEditorTiendaWeb + Caption = 'Configurar el acceso a la tienda web' + ClientWidth = 471 + OnShow = FormShow + ExplicitWidth = 477 + PixelsPerInch = 96 + TextHeight = 13 + inherited pnlBotones: TFlowPanel + Width = 471 + ExplicitTop = 374 + ExplicitWidth = 471 + inherited Button1: TButton + Left = 375 + ExplicitLeft = 375 + end + inherited Button2: TButton + Left = 285 + ExplicitLeft = 285 + end + end + inherited FlowPanel1: TFlowPanel + Width = 471 + ExplicitTop = 0 + ExplicitWidth = 471 + inherited Label1: TLabel + Width = 255 + Caption = 'Configurar el acceso a la tienda web' + ExplicitWidth = 255 + end + inherited Label2: TLabel + Height = 15 + Caption = 'Indique los par'#225'metros de conexi'#243'n a la tienda web' + ExplicitHeight = 15 + end + end + object cbActivo: TcxDBCheckBox [2] + Left = 59 + Top = 112 + Caption = 'Habilitar la tienda web para esta empresa' + DataBinding.DataField = 'TIENDA_ACTIVA' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Properties.OnEditValueChanged = cbActivoPropertiesEditValueChanged + 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 = 377 + end + object GroupBox1: TGroupBox [3] + Left = 59 + Top = 139 + Width = 381 + Height = 198 + Caption = 'Configuraci'#243'n de la tienda' + TabOrder = 3 + DesignSize = ( + 381 + 198) + object Label3: TLabel + Left = 54 + Top = 36 + Width = 44 + Height = 13 + Alignment = taRightJustify + Caption = 'Servidor:' + end + object Label4: TLabel + Left = 26 + Top = 62 + Width = 72 + Height = 13 + Alignment = taRightJustify + Caption = 'Base de datos:' + end + object Label5: TLabel + Left = 58 + Top = 102 + Width = 40 + Height = 13 + Alignment = taRightJustify + Caption = 'Usuario:' + end + object Label6: TLabel + Left = 38 + Top = 129 + Width = 60 + Height = 13 + Alignment = taRightJustify + Caption = 'Contrase'#241'a:' + end + object edtBDSERVER: TcxDBTextEdit + Left = 104 + Top = 32 + DataBinding.DataField = 'BDSERVER' + 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 = 250 + end + object edtBDUSER: TcxDBTextEdit + Left = 104 + Top = 99 + DataBinding.DataField = 'BDUSER' + 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 = 250 + end + object edtBDPASS: TcxDBTextEdit + Left = 104 + Top = 126 + DataBinding.DataField = 'BDPASS' + Properties.PasswordChar = '*' + 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 = 250 + end + object edtBDNAME: TcxDBTextEdit + Left = 104 + Top = 59 + DataBinding.DataField = 'BDNAME' + 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 = 250 + end + object bComprobar: TButton + Left = 192 + Top = 155 + Width = 161 + Height = 25 + Action = actComprobarAcceso + Anchors = [akTop, akRight] + TabOrder = 4 + end + end + inherited ActionList1: TActionList + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + object actComprobarAcceso: TAction + Caption = 'C&omprobar acceso' + OnExecute = actComprobarAccesoExecute + OnUpdate = actComprobarAccesoUpdate + end + end + object dsTiendaWeb: TDADataSource + Left = 80 + Top = 264 + end +end diff --git a/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.pas b/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.pas new file mode 100644 index 00000000..5de74451 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/_uEditorTiendaWeb.pas @@ -0,0 +1,173 @@ +unit uEditorTiendaWeb; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, cxTextEdit, cxDBEdit, + cxControls, cxContainer, cxEdit, cxCheckBox, DBXpress, WideStrings, SqlExpr, + uIEditorTiendaWeb, uBizTiendaWeb, uTiendaWebController, DB, uDADataTable; + +type + TfEditorTiendaWeb = class(TfDialogBase, IEditorTiendaWeb) + cbActivo: TcxDBCheckBox; + GroupBox1: TGroupBox; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + edtBDSERVER: TcxDBTextEdit; + edtBDUSER: TcxDBTextEdit; + edtBDPASS: TcxDBTextEdit; + edtBDNAME: TcxDBTextEdit; + bComprobar: TButton; + actComprobarAcceso: TAction; + dsTiendaWeb: TDADataSource; + procedure actComprobarAccesoUpdate(Sender: TObject); + procedure actComprobarAccesoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cbActivoPropertiesEditValueChanged(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + private + procedure RefrescarControles; + protected + FTienda : IBizTiendaWeb; + FController : ITiendaWebController; + function GetTiendaWeb: IBizTiendaWeb; + procedure SetTiendaWeb(const Value: IBizTiendaWeb); + public + property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + + +procedure TfEditorTiendaWeb.actAceptarExecute(Sender: TObject); +begin + inherited; + FController.Guardar(FTienda); + Close; +end; + +procedure TfEditorTiendaWeb.actCancelarExecute(Sender: TObject); +begin + inherited; + FController.DescartarCambios(FTienda); + Close; +end; + +procedure TfEditorTiendaWeb.actComprobarAccesoExecute(Sender: TObject); +var + SQLConnection1: TSQLConnection; +begin + SQLConnection1 := TSQLConnection.Create(Self); + try + with SQLConnection1 do + begin + Name := 'SQLConnection1'; + ConnectionName := 'MySQLConnection'; + DriverName := 'MySQL'; + GetDriverFunc := 'getSQLDriverMYSQL'; + LibraryName := 'dbxmys30.dll'; + LoginPrompt := False; + with Params do + begin + Clear; + Add('BlobSize=-1'); + Add('DriverName=MySQL'); + Add('ErrorResourceFile='); + Add('LocaleCode=0000'); + Add('Compressed=True'); + Add('Encrypted=True'); + Add('Database=' + edtBDNAME.Text); + Add('HostName=' + edtBDSERVER.Text); + Add('User_Name=' + edtBDUSER.Text); + Add('Password=' + edtBDPASS.Text); + end; + VendorLib := 'LIBMYSQL.dll'; + + try + Connected := True; + ShowInfoMessage('Conexión válida con la tienda'); + Connected := False; + except + on E : Exception do + ShowErrorMessage('Error de conexión', 'No se ha podido establecer la conexión con la base de datos.', E); + end; + end; + finally + FreeAndNIL(SQLConnection1); + end; +end; + +procedure TfEditorTiendaWeb.actComprobarAccesoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Length(edtBDSERVER.Text) > 0) and + (Length(edtBDUSER.Text) > 0) and + (Length(edtBDNAME.Text) > 0); +end; + +procedure TfEditorTiendaWeb.cbActivoPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + RefrescarControles; +end; + +constructor TfEditorTiendaWeb.Create(AOwner: TComponent); +begin + inherited; + FController := TTiendaWebController.Create; +end; + +destructor TfEditorTiendaWeb.Destroy; +begin + FController := NIL; + FTienda := NIL; + inherited; +end; + +procedure TfEditorTiendaWeb.FormShow(Sender: TObject); +begin + inherited; + if not FTienda.DataTable.Active then + FTienda.DataTable.Active := True; + + RefrescarControles; +end; + +function TfEditorTiendaWeb.GetTiendaWeb: IBizTiendaWeb; +begin + Result := FTienda; +end; + +procedure TfEditorTiendaWeb.RefrescarControles; +begin + edtBDSERVER.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDUSER.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDPASS.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDNAME.Enabled := (FTienda.TIENDA_ACTIVA = 1); +end; + +procedure TfEditorTiendaWeb.SetTiendaWeb(const Value: IBizTiendaWeb); +begin + FTienda := Value; + if Assigned(FTienda) then + begin + dsTiendaWeb.DataTable := FTienda.DataTable; + dsTiendaWeb.DataTable.Open; + end + else + dsTiendaWeb.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.dfm b/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.dfm new file mode 100644 index 00000000..b8b3addc --- /dev/null +++ b/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.dfm @@ -0,0 +1,282 @@ +inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb + ActiveControl = Button2 + Caption = 'Contenidos a actualizar' + ClientHeight = 425 + ClientWidth = 425 + ExplicitWidth = 431 + ExplicitHeight = 457 + PixelsPerInch = 96 + TextHeight = 13 + inherited pnlBotones: TFlowPanel + Top = 369 + Width = 425 + ExplicitTop = 369 + ExplicitWidth = 425 + inherited Button1: TButton + Left = 329 + ExplicitLeft = 329 + end + inherited Button2: TButton + Left = 239 + ExplicitLeft = 239 + end + end + inherited FlowPanel1: TFlowPanel + Width = 425 + Height = 369 + ExplicitWidth = 425 + ExplicitHeight = 369 + inherited lblInstruccion: TLabel + Width = 205 + Caption = 'Elija el contenido a actualizar' + ExplicitWidth = 205 + end + inherited Label2: TLabel + Width = 362 + Height = 35 + Caption = + 'Elija qu'#233' informaci'#243'n de FactuGES desea actualizar en la tienda ' + + 'web.' + ExplicitWidth = 362 + ExplicitHeight = 35 + end + object EasyListview1: TEasyListview + Left = 31 + Top = 105 + Width = 362 + Height = 240 + BevelKind = bkTile + CacheDoubleBufferBits = False + CellSizes.Tile.Height = 50 + CellSizes.Tile.Width = 300 + CellSizes.List.AutoSize = True + EditManager.Font.Charset = DEFAULT_CHARSET + EditManager.Font.Color = clWindowText + EditManager.Font.Height = -11 + EditManager.Font.Name = 'Tahoma' + EditManager.Font.Style = [] + UseDockManager = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + GroupFont.Charset = DEFAULT_CHARSET + GroupFont.Color = clWindowText + GroupFont.Height = -11 + GroupFont.Name = 'Tahoma' + GroupFont.Style = [] + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + ImagesLarge = PngImageList1 + PaintInfoGroup.MarginBottom.CaptionIndent = 4 + PaintInfoItem.CheckType = ectBox + PaintInfoItem.ShowBorder = False + ParentFont = False + Selection.FullCellPaint = True + Selection.FullItemPaint = True + Selection.FullRowSelect = True + TabOrder = 0 + View = elsTile + end + end + inherited ActionList1: TActionList + inherited actAceptar: TAction + Caption = '&Actualizar' + OnExecute = actAceptarExecute + OnUpdate = actAceptarUpdate + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end + object PngImageList1: 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 = 'PngImage1' + 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 = 'PngImage0' + 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 = 'PngImage2' + Background = clWindow + end> + Left = 48 + Top = 384 + Bitmap = {} + end +end diff --git a/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.pas b/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.pas new file mode 100644 index 00000000..6fe58fb8 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/uEditorActualizarTiendaWeb.pas @@ -0,0 +1,163 @@ +unit uEditorActualizarTiendaWeb; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ActnList, StdCtrls, ExtCtrls, uDialogBase, CheckLst, + EasyListview, uIEditorActualizarTiendaWeb, + uTiendaWebController, uBizTiendaWeb, MPCommonObjects, + ImgList, PngImageList; + +type + TfEditorActualizarTiendaWeb = class(TfDialogBase, IEditorActualizarTiendaWeb) + EasyListview1: TEasyListview; + PngImageList1: TPngImageList; + procedure FormShow(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actAceptarUpdate(Sender: TObject); + private + procedure RellenarContenidos; + protected + FContenidosAct : TContenidosActualizables; +// FTienda : IBizTiendaWeb; +// FController : ITiendaWebController; +{ function GetTiendaWeb: IBizTiendaWeb; + procedure SetTiendaWeb(const Value: IBizTiendaWeb);} + function GetContenidosActualizables: TContenidosActualizables; + procedure SetContenidosActualizables(const Value: TContenidosActualizables); + public +// property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb; + property ContenidosActualizables: TContenidosActualizables read GetContenidosActualizables write SetContenidosActualizables; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +var + fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb; + +implementation + +{$R *.dfm} + +{ TfEditorActualizarTiendaWeb } + +procedure TfEditorActualizarTiendaWeb.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOK; +end; + +procedure TfEditorActualizarTiendaWeb.actAceptarUpdate(Sender: TObject); +begin + inherited; + // +end; + +procedure TfEditorActualizarTiendaWeb.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +constructor TfEditorActualizarTiendaWeb.Create(AOwner: TComponent); +begin + inherited; + // +end; + +destructor TfEditorActualizarTiendaWeb.Destroy; +begin + // + inherited; +end; + +procedure TfEditorActualizarTiendaWeb.FormShow(Sender: TObject); +begin + inherited; + RellenarContenidos; +end; + +function TfEditorActualizarTiendaWeb.GetContenidosActualizables: TContenidosActualizables; +var + i: Integer; +begin + FContenidosAct := []; + for i := 0 to EasyListView1.Items.Count - 1 do + begin + if EasyListview1.Items[i].Checked then + case EasyListview1.Items[i].Tag of + Ord(caClientes) : FContenidosAct := FContenidosAct + [caClientes]; + Ord(caProveedores) : FContenidosAct := FContenidosAct + [caProveedores]; + end; + end; + + Result := FContenidosAct; +end; + +procedure TfEditorActualizarTiendaWeb.RellenarContenidos; +var + AItem : TEasyItem; +begin + inherited; + + EasyListView1.BeginUpdate; + try + EasyListView1.Items.Clear; + EasyListView1.CellSizes.Tile.Width := EasyListview1.ClientWidth; + + // Clientes + AItem := EasyListview1.Items.Add(); + with AItem do + begin + ImageIndex := 0; + Captions[0] := 'Clientes'; + Captions[1] := 'Actualiza los clientes con acceso permitido a la tienda web'; + DetailCount := 2; + Details[0] := 0; // Columna NOMBRE; + Details[1] := 1; // Columna DESCRIPCION; + Checked := (caClientes in FContenidosAct); + Tag := Ord(caClientes); + end; + + // Proveedores + AItem := EasyListview1.Items.Add(); + with AItem do + begin + ImageIndex := 1; + Captions[0] := 'Proveedores y artículos'; + Captions[1] := 'Actualiza los proveedores de la tienda web y sus artículos'; + DetailCount := 2; + Details[0] := 0; // Columna NOMBRE; + Details[1] := 1; // Columna DESCRIPCION; + Checked := (caProveedores in FContenidosAct); + Tag := Ord(caProveedores); + end; + + // Pedidos de cliente + {AItem := EasyListview1.Items.Add(); + with AItem do + begin + ImageIndex := 2; + Captions[0] := 'Pedidos de cliente'; + Captions[1] := 'Actualiza el estado de los pedidos de cliente de la tienda web'; + DetailCount := 2; + Details[0] := 0; // Columna NOMBRE; + Details[1] := 1; // Columna DESCRIPCION; + Checked := (caPedidosCliente in FContenidosAct); + Tag := Ord(caPedidosCliente); + end;} + finally + EasyListView1.EndUpdate; + end +end; + +procedure TfEditorActualizarTiendaWeb.SetContenidosActualizables( + const Value: TContenidosActualizables); +begin + FContenidosAct := Value; +end; + +end. + diff --git a/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.dfm b/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.dfm new file mode 100644 index 00000000..dda8eec8 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.dfm @@ -0,0 +1,236 @@ +object fEditorTiendaWeb: TfEditorTiendaWeb + Left = 195 + Top = 108 + BorderStyle = bsDialog + Caption = 'Tienda web' + ClientHeight = 356 + ClientWidth = 367 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 367 + Height = 322 + Align = alClient + BevelOuter = bvNone + BorderWidth = 5 + ParentColor = True + TabOrder = 0 + object PageControl1: TPageControl + Left = 5 + Top = 5 + Width = 357 + Height = 312 + ActivePage = TabSheet1 + Align = alClient + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Tienda web' + DesignSize = ( + 349 + 284) + object cbActivo: TcxDBCheckBox + Left = 3 + Top = 16 + Caption = 'Habilitar la tienda web para esta empresa' + DataBinding.DataField = 'TIENDA_ACTIVA' + DataBinding.DataSource = dsTiendaWeb + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Properties.OnEditValueChanged = cbActivoPropertiesEditValueChanged + 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 = 377 + end + object GroupBox1: TGroupBox + Left = 8 + Top = 43 + Width = 333 + Height = 198 + Anchors = [akLeft, akTop, akRight, akBottom] + Caption = 'Probar conexi'#243'n con la tienda' + TabOrder = 1 + DesignSize = ( + 333 + 198) + object Label1: TLabel + Left = 54 + Top = 36 + Width = 44 + Height = 13 + Alignment = taRightJustify + Caption = 'Servidor:' + end + object Label3: TLabel + Left = 26 + Top = 62 + Width = 72 + Height = 13 + Alignment = taRightJustify + Caption = 'Base de datos:' + end + object Label4: TLabel + Left = 58 + Top = 102 + Width = 40 + Height = 13 + Alignment = taRightJustify + Caption = 'Usuario:' + end + object Label5: TLabel + Left = 38 + Top = 129 + Width = 60 + Height = 13 + Alignment = taRightJustify + Caption = 'Contrase'#241'a:' + end + object edtBDSERVER: TcxDBTextEdit + Left = 104 + Top = 32 + DataBinding.DataField = 'BDSERVER' + DataBinding.DataSource = dsTiendaWeb + 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 = 209 + end + object edtBDUSER: TcxDBTextEdit + Left = 104 + Top = 99 + DataBinding.DataField = 'BDUSER' + DataBinding.DataSource = dsTiendaWeb + 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 = 209 + end + object edtBDPASS: TcxDBTextEdit + Left = 104 + Top = 126 + DataBinding.DataField = 'BDPASS' + DataBinding.DataSource = dsTiendaWeb + Properties.EchoMode = eemPassword + Properties.PasswordChar = '*' + 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 = 209 + end + object edtBDNAME: TcxDBTextEdit + Left = 104 + Top = 59 + DataBinding.DataField = 'BDNAME' + DataBinding.DataSource = dsTiendaWeb + 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 = 209 + end + object bComprobar: TButton + Left = 104 + Top = 155 + Width = 161 + Height = 25 + Action = actComprobar + Anchors = [akTop, akRight] + Caption = 'Probar la conexi'#243'n' + TabOrder = 4 + end + end + end + end + end + object Panel2: TPanel + Left = 0 + Top = 322 + Width = 367 + Height = 34 + Align = alBottom + BevelOuter = bvNone + ParentColor = True + TabOrder = 1 + DesignSize = ( + 367 + 34) + object OKBtn: TButton + Left = 207 + Top = 2 + Width = 75 + Height = 25 + Action = actAceptar + Anchors = [akTop, akRight] + TabOrder = 0 + end + object CancelBtn: TButton + Left = 286 + Top = 2 + Width = 75 + Height = 25 + Action = actCancelar + Anchors = [akTop, akRight] + Cancel = True + TabOrder = 1 + end + end + object ActionList1: TActionList + Left = 40 + Top = 264 + object actAceptar: TAction + Caption = '&Aceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actComprobar: TAction + Caption = 'Comprobar la conexi'#243'n' + OnExecute = actComprobarExecute + OnUpdate = actComprobarUpdate + end + end + object dsTiendaWeb: TDADataSource + Left = 80 + Top = 264 + end +end diff --git a/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.pas b/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.pas new file mode 100644 index 00000000..7917be56 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/uEditorTiendaWeb.pas @@ -0,0 +1,151 @@ +unit uEditorTiendaWeb; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ComCtrls, ExtCtrls, ActnList, cxControls, cxContainer, cxEdit, + cxCheckBox, cxDBEdit, DB, uDADataTable, uIEditorTiendaWeb, uBizTiendaWeb, + cxTextEdit, uTiendaWebController, DBXpress, WideStrings, SqlExpr; + +type + TfEditorTiendaWeb = class(TForm, IEditorTiendaWeb) + Panel1: TPanel; + Panel2: TPanel; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + OKBtn: TButton; + CancelBtn: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + cbActivo: TcxDBCheckBox; + dsTiendaWeb: TDADataSource; + GroupBox1: TGroupBox; + edtBDSERVER: TcxDBTextEdit; + edtBDUSER: TcxDBTextEdit; + edtBDPASS: TcxDBTextEdit; + edtBDNAME: TcxDBTextEdit; + Label1: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + bComprobar: TButton; + actComprobar: TAction; + procedure FormShow(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure cbActivoPropertiesEditValueChanged(Sender: TObject); + procedure actComprobarUpdate(Sender: TObject); + procedure actComprobarExecute(Sender: TObject); + private + procedure RefrescarControles; + protected + FTienda : IBizTiendaWeb; + FController : ITiendaWebController; + function GetTiendaWeb: IBizTiendaWeb; + procedure SetTiendaWeb(const Value: IBizTiendaWeb); + public + property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +{ TfEditorTiendaWeb } + +uses + uDialogUtils; + +procedure TfEditorTiendaWeb.actAceptarExecute(Sender: TObject); +begin + FTienda.Edit; + if cbActivo.Checked then + FTienda.TIENDA_ACTIVA := 1 + else + FTienda.TIENDA_ACTIVA := 0; + + FController.Guardar(FTienda); + Close; +end; + +procedure TfEditorTiendaWeb.actCancelarExecute(Sender: TObject); +begin + FController.DescartarCambios(FTienda); + Close; +end; + +procedure TfEditorTiendaWeb.actComprobarExecute(Sender: TObject); +begin + if FController.HayConexionConTienda(edtBDSERVER.Text, edtBDNAME.Text, + edtBDUSER.Text, edtBDPASS.Text) then + ShowInfoMessage('Conexión válida con la tienda') + else + ShowErrorMessage('Error de conexión', 'No se ha podido establecer la conexión con la base de datos.'); + +end; + +procedure TfEditorTiendaWeb.actComprobarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := + (Length(edtBDSERVER.Text) > 0) and + (Length(edtBDUSER.Text) > 0) and + (Length(edtBDNAME.Text) > 0); +end; + +procedure TfEditorTiendaWeb.cbActivoPropertiesEditValueChanged(Sender: TObject); +begin + RefrescarControles; +end; + +constructor TfEditorTiendaWeb.Create(AOwner: TComponent); +begin + inherited; + FController := TTiendaWebController.Create; +end; + +destructor TfEditorTiendaWeb.Destroy; +begin + FController := NIL; + FTienda := NIL; + inherited; +end; + +procedure TfEditorTiendaWeb.RefrescarControles; +begin + edtBDSERVER.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDUSER.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDPASS.Enabled := (FTienda.TIENDA_ACTIVA = 1); + edtBDNAME.Enabled := (FTienda.TIENDA_ACTIVA = 1); +end; + +procedure TfEditorTiendaWeb.FormShow(Sender: TObject); +begin + if not FTienda.DataTable.Active then + FTienda.DataTable.Active := True; + + RefrescarControles; +end; + +function TfEditorTiendaWeb.GetTiendaWeb: IBizTiendaWeb; +begin + Result := FTienda; +end; + +procedure TfEditorTiendaWeb.SetTiendaWeb(const Value: IBizTiendaWeb); +begin + FTienda := Value; + if Assigned(FTienda) then + begin + dsTiendaWeb.DataTable := FTienda.DataTable; + dsTiendaWeb.DataTable.Open; + end + else + dsTiendaWeb.DataTable := NIL; +end; + +end. + diff --git a/Source/Modulos/Tienda web/Views/uTiendaWebViewRegister.pas b/Source/Modulos/Tienda web/Views/uTiendaWebViewRegister.pas new file mode 100644 index 00000000..cfaf9331 --- /dev/null +++ b/Source/Modulos/Tienda web/Views/uTiendaWebViewRegister.pas @@ -0,0 +1,48 @@ +{ +=============================================================================== + 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 uTiendaWebViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorTiendaWeb, uEditorActualizarTiendaWeb; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorTiendaWeb, 'EditorTiendaWeb'); + EditorRegistry.RegisterClass(TfEditorActualizarTiendaWeb, 'EditorActualizarTiendaWeb'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorTiendaWeb); + EditorRegistry.UnRegisterClass(TfEditorActualizarTiendaWeb); +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 00000000..6e03c151 --- /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.dpk b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk new file mode 100644 index 00000000..ea4de4d0 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk @@ -0,0 +1,55 @@ +package TiposIVA_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, + dbrtl, + cxLibraryD10, + dxThemeD10, + dsnap, + vcldb, + adortl, + dxBarExtItemsD10, + dxComnD10, + dxBarD10, + dxLayoutControlD10, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + DataAbstract_D10, + Base, + ControllerBase, + TiposIVA_model, + TiposIVA_data; + +contains + uTiposIVAController in 'uTiposIVAController.pas', + uIEditorTiposIVA in 'View\uIEditorTiposIVA.pas', + uIEditorTipoIVA in 'View\uIEditorTipoIVA.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.pas new file mode 100644 index 00000000..0d5e0341 --- /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 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 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.pas b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.pas new file mode 100644 index 00000000..2db523c8 --- /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 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 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.pas b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas new file mode 100644 index 00000000..c64c514b --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas @@ -0,0 +1,343 @@ +{ +=============================================================================== + 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 uTiposIVAController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uBizTiposIVA, uIDataModuleTiposIVA; + +type + ITiposIVAController = interface(IObservador) + ['{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(TObservador, ITiposIVAController) + protected + FDataModule : IDataModuleTiposIVA; + + function _Vacio : IBizTipoIVA; + function ValidarTipoIVA(ATipoIVA: IBizTipoIVA): Boolean; + procedure AsignarDataModule; + procedure AsignarID(ATipoIVA: IBizTipoIVA; const IDNuevo: Integer); + + public + constructor Create; virtual; + 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, + uIEditorTipoIVA, uDataModuleTiposIVA; + +{ TTiposIVAController } + +procedure TTiposIVAController.Anadir(ATipoIVA: IBizTipoIVA); +begin + ATipoIVA.Insert; +end; + +procedure TTiposIVAController.AsignarDataModule; +begin + FDataModule := TDataModuleTiposIVA.Create(Nil); +end; + +procedure TTiposIVAController.AsignarID(ATipoIVA: IBizTipoIVA; + const IDNuevo: Integer); +begin + if not Assigned(ATipoIVA) then + raise Exception.Create ('TipoIVA no asignado'); + + if ATipoIVA.EsNuevo then + begin + ATipoIVA.Edit; + ATipoIVA.ID := IDNuevo; + ATipoIVA.Post; + end; +end; + +function TTiposIVAController.BuscarTodos: IBizTipoIVA; +begin + Result := FDataModule.GetItems; +end; + +constructor TTiposIVAController.Create; +begin + 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 descripción para este tipo de IVA.'); + + Result := True; +end; + +procedure TTiposIVAController.Ver(ATipoIVA: IBizTipoIVA); +var + AEditor : IEditorTipoIVA; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorTipoIVA', IEditorTipoIVA, AEditor); + with AEditor do + TipoIVA := ATipoIVA; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +procedure TTiposIVAController.VerTodos(ATiposIVA: IBizTipoIVA); +var + AEditor : IEditorTiposIVA; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorTiposIVA', IEditorTiposIVA, AEditor); + with AEditor do + TiposIVA := ATiposIVA; + finally + HideHourglassCursor; + end; + + if Assigned(AEditor) then + try + AEditor.ShowModal; + AEditor.Release; + finally + AEditor := NIL; + end; +end; + +function TTiposIVAController.Eliminar(ATipoIVA: IBizTipoIVA): Boolean; +begin + Result := False; + + 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; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarTipoIVA(ATipoIVA) then + begin + ShowHourglassCursor; + try + if ATipoIVA.EsNuevo then + NuevoID := FDataModule.GetNextID(ATipoIVA.DataTable.LogicalName) + else + NuevoID := ATipoIVA.ID; + + AsignarID(ATipoIVA, NuevoID); + 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); + CopyDataTable(ATipoIVA.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +end. 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 00000000..c8ff421c --- /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.dpk b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk new file mode 100644 index 00000000..1552bd67 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk @@ -0,0 +1,50 @@ +package TiposIVA_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, + dbrtl, + dsnap, + vcldb, + adortl, + vcljpg, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + DataAbstract_D10, + Base, + TiposIVA_model; + +contains + uDataModuleTiposIVA in 'uDataModuleTiposIVA.pas' {DataModuleTiposIVA: TDAClientDataModule}; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm new file mode 100644 index 00000000..156cbb56 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm @@ -0,0 +1,243 @@ +object DataModuleTiposIVA: TDataModuleTiposIVA + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + RemoteService = RORemoteService + Adapter = DABinAdapter + SchemaCall.MethodName = 'GetSchemaAsXML' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + end> + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvTiposIVA' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 24 + end + object DABinAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object DADesigntimeCall1: TDADesigntimeCall + RemoteRequest.MethodName = 'Login' + RemoteRequest.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBoolean + end + item + Name = 'User' + ParamType = fIn + DataType = rtString + Value = 'Administrador' + end + item + Name = 'Password' + ParamType = fIn + DataType = rtString + Value = '1' + end + item + Name = 'LoginInfo' + ParamType = fOut + DataType = rtUserDefined + UserClassName = 'TRdxLoginInfo' + end> + RemoteService = LoginRemoteService + Left = 48 + Top = 160 + end + object LoginRemoteService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage1 + Channel = ROWinInetHTTPChannel1 + Left = 48 + Top = 216 + end + object ROWinInetHTTPChannel1: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Left = 48 + Top = 272 + end + object ROBinMessage1: TROBinMessage + Left = 48 + Top = 324 + end + object tbl_TiposIVA: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'TIPOS_IVA_ID' + Alignment = taLeftJustify + DictionaryEntry = 'TIPOS_IVA_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + DictionaryEntry = 'TIPOS_IVA_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descripci'#243'n' + Alignment = taLeftJustify + DictionaryEntry = 'TIPOS_IVA_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'TIPOS_IVA_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% RE' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'TIPOS_IVA_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + SchemaCall.MethodName = 'GetDatasetSchema' + SchemaCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'aDatasetName' + ParamType = fIn + DataType = rtString + Value = 'TiposIVA' + end> + DataRequestCall.MethodName = 'GetDatasetDataEx' + DataRequestCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'DatasetName' + ParamType = fIn + DataType = rtString + Value = 'TiposIVA' + end + item + Name = 'Params' + ParamType = fIn + DataType = rtUserDefined + UserClassName = 'TDADatasetParamArray' + end + item + Name = 'UserFilter' + ParamType = fIn + DataType = rtString + Value = '' + end + item + Name = 'IncludeSchema' + ParamType = fIn + DataType = rtBoolean + Value = False + end + item + Name = 'MaxRecords' + ParamType = fIn + DataType = rtInteger + Value = -1 + end> + DataUpdateCall.MethodName = 'UpdateData' + DataUpdateCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtBinary + end + item + Name = 'Delta' + ParamType = fIn + DataType = rtBinary + end> + ScriptCall.MethodName = 'GetDatasetScripts' + ScriptCall.Params = < + item + Name = 'Result' + ParamType = fResult + DataType = rtString + Value = '' + end + item + Name = 'DatasetNames' + ParamType = fIn + DataType = rtString + Value = 'TiposIVA' + end> + ReadOnly = False + RemoteService = RORemoteService + Adapter = DABinAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TiposIVA' + IndexDefs = <> + Left = 216 + Top = 24 + end + object ds_TiposIVA: TDADataSource + DataTable = tbl_TiposIVA + Left = 216 + Top = 88 + 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 00000000..a56ab23e --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.pas @@ -0,0 +1,177 @@ +{ +=============================================================================== + 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 uDataModuleTiposIVA; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleTiposIVA, uBizTiposIVA; + +type + TDataModuleTiposIVA = class(TDAClientDataModule, IDataModuleTiposIVA) + RORemoteService: TRORemoteService; + DABinAdapter: TDABINAdapter; + DADesigntimeCall1: TDADesigntimeCall; + LoginRemoteService: TRORemoteService; + ROWinInetHTTPChannel1: TROWinInetHTTPChannel; + ROBinMessage1: TROBinMessage; + tbl_TiposIVA: TDACDSDataTable; + ds_TiposIVA: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function DarNombreGenerador(DataSetName: String): String; virtual; + function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload; + + // Descomentar si tiene detalles + // function _GetDetalles: IBizDetalles; + public + function GetNextID(const DataSetName : String) : Integer; + function GetItems: IBizTipoIVA; + function GetItem(const ID : Integer) : IBizTipoIVA; + function NewItem : IBizTipoIVA; + + // Descomentar si tiene informe + // function GetReport(const ATipoIVAID: Integer): Binary; + + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schTiposIVAClient_Intf; + +{ TDataModuleTiposIVA } + + +// Descomentar si tiene informe +// function TDataModuleTiposIVA.GetReport(const ATipoIVAID: Integer): Binary; +// begin +// Result := (RORemoteService as IsrvTiposIVA).GenerateReport(ATipoIVAID) +// end; + +procedure TDataModuleTiposIVA.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleTiposIVA.DarNombreGenerador(DataSetName: String): String; +begin + Result := ''; + if DataSetName = nme_TiposIVA then + Result := 'GEN_TIPOS_IVA_ID' +end; + +function TDataModuleTiposIVA.GetNextID(const DataSetName: String): Integer; +var + aGeneratorName : String; +begin + aGeneratorName := DarNombreGenerador(DataSetName); + Result := (RORemoteService as IsrvTiposIVA).GetNextAutoInc(aGeneratorName) +end; + +function TDataModuleTiposIVA._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable; +begin + Result := NIL; + + if not Assigned(ADataTable) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + Result := TDACDSDataTable.Create(NIL); + CloneDataTable(ADataTable, Result); +end; + + +// Descomentar si tiene detalles +// function TDataModuleTiposIVA._GetDetalles: IBizTipoIVADetalles; +// var +// ADetalles : TDACDSDataTable; +// begin +// ShowHourglassCursor; +// try +// ADetalles := _CloneDataTable(tbl_TiposIVADetalles); +// with ADetalles do +// begin +// BusinessRulesID := BIZ_CLIENT_TipoIVADETALLES; +// DetailOptions := DetailOptions - +// [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; +// end; +// Result := (ADetalles as IBizTipoIVADetalles); +// finally +// HideHourglassCursor; +// end; +// end; + + +function TDataModuleTiposIVA.GetItems: IBizTipoIVA; +var + ATipoIVA : TDACDSDataTable; +begin + ShowHourglassCursor; + try + ATipoIVA := _CloneDataTable(tbl_TiposIVA); + ATipoIVA.BusinessRulesID := BIZ_CLIENT_TipoIVA; + + // Descomentar si tiene detalles + // with TBizTipoIVA(ATipoIVA.BusinessEventsObj) do + // Detalles := _GetDetalles; + + 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; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + OpenBraket; + AddText('TIPOS_IVA.' + fld_TiposIVAID + ' = ' + IntToStr(ID)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +end. 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 00000000..e14ffc76 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.pas @@ -0,0 +1,43 @@ +{ +=============================================================================== + 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 uIDataModuleTiposIVA; + +interface + +uses + uBizTiposIVA; + +type + IDataModuleTiposIVA = interface + ['{FF13E488-D185-4674-8A27-539BEC012B75}'] + function GetItems: IBizTipoIVA; + function GetNextID(const DataSetName : String) : Integer; + 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 00000000..d23f19e2 --- /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.dpk b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk new file mode 100644 index 00000000..b9b65ee0 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk @@ -0,0 +1,43 @@ +package TiposIVA_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, + dsnap, + dbrtl, + vcldb, + vcl, + adortl, + Base, + DataAbstract_D10; + +contains + uIDataModuleTiposIVA in 'Data\uIDataModuleTiposIVA.pas', + schTiposIVAClient_Intf in 'schTiposIVAClient_Intf.pas', + schTiposIVAServer_Intf in 'schTiposIVAServer_Intf.pas', + uBizTiposIVA in 'uBizTiposIVA.pas'; + +end. 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 00000000..7642ac97 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland 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 + 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 00000000..e69de29b 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 00000000..36f26e23 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.pas b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas new file mode 100644 index 00000000..56bcd981 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas @@ -0,0 +1,154 @@ +unit schTiposIVAClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +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 = '{D96E3FA9-3BEC-4A87-B5A6-F8A8AEF73D87}'; + + { 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) + ['{DEFBEA87-112C-4BFB-86E8-40085D5D6328}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property RE: Float read GetREValue write SetREValue; + end; + + { TTiposIVADataTableRules } + TTiposIVADataTableRules = class(TDADataTableRules, ITiposIVA) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property IVA: Float read GetIVAValue write SetIVAValue; + property RE: Float read GetREValue write SetREValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ 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.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.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.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.GetREValue: Float; +begin + result := DataTable.Fields[idx_TiposIVARE].AsFloat; +end; + +procedure TTiposIVADataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_TiposIVARE].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_TiposIVA, TTiposIVADataTableRules); + +end. 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 00000000..9c626a44 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.pas @@ -0,0 +1,167 @@ +unit schTiposIVAServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, 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 = '{2A97AB6B-F1E7-4CEF-BB65-E0155C2C9A47}'; + +type + { ITiposIVADelta } + ITiposIVADelta = interface(ITiposIVA) + ['{2A97AB6B-F1E7-4CEF-BB65-E0155C2C9A47}'] + { 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 GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREFERENCIAValue: String; virtual; + function GetOldREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetIVAValue: Float; virtual; + function GetOldIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetREValue: Float; virtual; + function GetOldREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property IVA : Float read GetIVAValue write SetIVAValue; + property OldIVA : Float read GetOldIVAValue; + property RE : Float read GetREValue write SetREValue; + property OldRE : Float read GetOldREValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ 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.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAID]; +end; + +procedure TTiposIVABusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAID] := aValue; +end; + +function TTiposIVABusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA]; +end; + +function TTiposIVABusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAREFERENCIA]; +end; + +procedure TTiposIVABusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA] := aValue; +end; + +function TTiposIVABusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION]; +end; + +function TTiposIVABusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVADESCRIPCION]; +end; + +procedure TTiposIVABusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION] := aValue; +end; + +function TTiposIVABusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA]; +end; + +function TTiposIVABusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAIVA]; +end; + +procedure TTiposIVABusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA] := aValue; +end; + +function TTiposIVABusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE]; +end; + +function TTiposIVABusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVARE]; +end; + +procedure TTiposIVABusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_TiposIVADelta, TTiposIVABusinessProcessorRules); + +end. 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 00000000..02e2a700 --- /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 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 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 00000000..acee71df --- /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.dpk b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk new file mode 100644 index 00000000..bb0a1ec9 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk @@ -0,0 +1,42 @@ +package TiposIVA_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 + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + PluginSDK_D10R, + TiposIVA_model, + TiposIVA_controller, + TiposIVA_view; + +contains + uPluginTiposIVA in 'uPluginTiposIVA.pas'; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm new file mode 100644 index 00000000..4ee0dc72 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm @@ -0,0 +1,81 @@ +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 = <> + Left = 232 + Top = 16 + 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 = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object TiposIVA1: TMenuItem + Tag = 19002 + Action = actTiposIVA + 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/Tipos de IVA/Plugin/uPluginTiposIVA.pas b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas new file mode 100644 index 00000000..ac2cba23 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas @@ -0,0 +1,74 @@ +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; + N1: 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.dfm b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm new file mode 100644 index 00000000..577ca869 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm @@ -0,0 +1,324 @@ +object srvTiposIVA: TsrvTiposIVA + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schTiposIVA + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 300 + Width = 334 + object Diagrams: TDADiagrams + Left = 150 + Top = 80 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'TIPOS_IVA_ID' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + end + item + Name = 'TIPOS_IVA_REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia' + Alignment = taLeftJustify + end + item + Name = 'TIPOS_IVA_DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Descripci'#243'n' + Alignment = taLeftJustify + end + item + Name = 'TIPOS_IVA_IVA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% IVA' + Alignment = taRightJustify + end + item + Name = 'TIPOS_IVA_RE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '% RE' + Alignment = taRightJustify + end> + Left = 150 + Top = 24 + end + object schTiposIVA: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIPOS_IVA' + SQL = + 'SELECT '#10' ID, REFERENCIA, DESCRIPCION, IVA, RE'#10' FROM'#10' TIPO' + + 'S_IVA' + StatementType = stSQL + 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 = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'TIPOS_IVA_ID' + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TIPOS_IVA_REFERENCIA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'TIPOS_IVA_DESCRIPCION' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'TIPOS_IVA_IVA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'TIPOS_IVA_RE' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIPOS_IVA' + SQL = + 'INSERT'#10' INTO TIPOS_IVA'#10' (ID, REFERENCIA, DESCRIPCION, IVA, R' + + 'E)'#10' VALUES'#10' (:ID, :REFERENCIA, :DESCRIPCION, :IVA, :RE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_TiposIVA' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIPOS_IVA' + SQL = 'DELETE '#10' FROM'#10' TIPOS_IVA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_TiposIVA' + end + item + Params = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IVA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RE' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIPOS_IVA' + SQL = + 'UPDATE TIPOS_IVA'#10' SET '#10' REFERENCIA = :REFERENCIA,'#10' DESCRI' + + 'PCION = :DESCRIPCION, '#10' IVA = :IVA, '#10' RE = :RE'#10' WHERE'#10' ' + + ' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_TiposIVA' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Familias' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Update Familias' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end + item + Name = 'Delete Familias' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'Familias' + FailureBehaviour = fbRaiseException + end> + Left = 48 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object bpTiposIVA: TDABusinessProcessor + Schema = schTiposIVA + InsertCommandName = 'Insert_TiposIVA' + DeleteCommandName = 'Delete_TiposIVA' + UpdateCommandName = 'Update_TiposIVA' + ReferencedDataset = 'TiposIVA' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 251 + Top = 24 + 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 00000000..0a248a6f --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.pas @@ -0,0 +1,70 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor; + +type + { TsrvTiposIVA } + TsrvTiposIVA = class(TDARemoteService, IsrvTiposIVA) + Diagrams: TDADiagrams; + DABINAdapter: TDABINAdapter; + schTiposIVA: TDASchema; + DataDictionary: TDADataDictionary; + bpTiposIVA: TDABusinessProcessor; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvTiposIVA methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_srvTiposIVA(out anInstance : IUnknown); +begin + anInstance := TsrvTiposIVA.Create(NIL); +end; + +{ srvTiposIVA } +procedure TsrvTiposIVA.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvTiposIVA.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvTiposIVA.GetNextAutoInc(const GeneratorName: String): Integer; +begin + Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) +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 00000000..cd54d2ea --- /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/Views/TiposIVA_view.bdsproj b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.bdsproj new file mode 100644 index 00000000..d98ab00a --- /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.dpk b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk new file mode 100644 index 00000000..58780b3a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk @@ -0,0 +1,46 @@ +package TiposIVA_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, + dbrtl, + vcldb, + dsnap, + adortl, + DataAbstract_D10, + Base, + TiposIVA_model, + TiposIVA_data, + TiposIVA_controller, + JvCmpD10R; + +contains + uTiposIVAViewRegister in 'uTiposIVAViewRegister.pas', + uEditorTiposIVA in 'uEditorTiposIVA.pas' {fEditorTiposIVA: TfEditorTiposIVA}, + uEditorTipoIVA in 'uEditorTipoIVA.pas' {fEditorTipoIVA: TfEditorTipoIVA}; + +end. 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 00000000..e69de29b 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 00000000..36f26e23 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.dfm b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dfm new file mode 100644 index 00000000..4b5225a4 --- /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 00000000..df574072 --- /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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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.dfm b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dfm new file mode 100644 index 00000000..73b3801a --- /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 00000000..c1dbbbd7 --- /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 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: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión 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.pas b/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.pas new file mode 100644 index 00000000..8286c0cb --- /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 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 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/Relaciones_Group.bdsgroup b/Source/Relaciones_Group.bdsgroup new file mode 100644 index 00000000..3fa97497 --- /dev/null +++ b/Source/Relaciones_Group.bdsgroup @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + DataAbstract_D10\DataAbstract_D10.bdsproj + Base\Base.bdsproj + Base\GUIBase\GUIBase.bdsproj + Modulos\Relaciones\Pedidos de cliente - Pedidos a proveedor\PedCli_PedProv_relation.bdsproj + Modulos\Pedidos a proveedor\Model\PedidosProveedor_model.bdsproj + Modulos\Pedidos a proveedor\Data\PedidosProveedor_data.bdsproj + Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.bdsproj + Modulos\Relaciones\Pedidos de cliente - Albaranes de cliente\PedCli_AlbCli_relation.bdsproj + Modulos\Facturas de cliente\Views\FacturasCliente_view.bdsproj + Modulos\Albaranes de cliente\Views\AlbaranesCliente_view.bdsproj + Modulos\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj + Modulos\Facturas de proveedor\Views\FacturasProveedor_view.bdsproj + Servidor\FactuGES_Server.bdsproj + Modulos\Pedidos de cliente\Data\PedidosCliente_data.bdsproj + Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.bdsproj + Cliente\FactuGES.bdsproj + Modulos\Inventario\Controller\Inventario_controller.bdsproj + Modulos\Pedidos de cliente\Views\PedidosCliente_view.bdsproj + Modulos\Albaranes de proveedor\Model\AlbaranesProveedor_model.bdsproj + Modulos\Albaranes de proveedor\Data\AlbaranesProveedor_data.bdsproj + Modulos\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.bdsproj + Modulos\Facturas de proveedor\Controller\FacturasProveedor_controller.bdsproj + Modulos\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.bdsproj + Modulos\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.bdsproj + Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.bdsproj + DataAbstract_D10.bpl Base.bpl GUIBase.bpl PedCli_PedProv_relation.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl PedCli_AlbCli_relation.bpl FacturasCliente_view.bpl AlbaranesCliente_view.bpl AlbCli_FacCli_relation.bpl FacturasProveedor_view.bpl FactuGES_Server.exe PedidosCliente_data.bpl PedidosCliente_controller.bpl FactuGES.exe Inventario_controller.bpl PedidosCliente_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl FacturasProveedor_controller.bpl AlbProv_FacProv_relation.bpl PedProv_AlbProv_relation.bpl AlbaranesProveedor_view.bpl + + + + diff --git a/Source/Relaciones_Group.config b/Source/Relaciones_Group.config new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Relaciones_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL new file mode 100644 index 00000000..c542840e --- /dev/null +++ b/Source/Servicios/FactuGES.RODL @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas new file mode 100644 index 00000000..1bf34323 --- /dev/null +++ b/Source/Servicios/FactuGES_Intf.pas @@ -0,0 +1,1890 @@ +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. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, TypInfo, + {RemObjects:} uROClasses, uROClient, uROTypes, uROClientIntf, + {Used RODLs:} DataAbstract_Intf; + +const + { Library ID } + LibraryUID = '{99553DD5-13B5-40EB-B7E6-D2B9A7C1B4D6}'; + + { Service Interface ID's } + IsrvContactos_IID : TGUID = '{28CCDC07-A3A4-4917-89B4-64423DC70C9D}'; + IsrvComisiones_IID : TGUID = '{461DBBE7-293D-497A-8CD1-840401883BCE}'; + IsrvLogin_IID : TGUID = '{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}'; + IsrvEmpresas_IID : TGUID = '{590F06D1-26B4-435B-B636-50CB8FFE6353}'; + IsrvFacturasCliente_IID : TGUID = '{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'; + IsrvPedidosProveedor_IID : TGUID = '{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}'; + IsrvConfiguracion_IID : TGUID = '{0882B8A4-C8AA-424E-8FC1-C6226B670522}'; + IsrvAlmacenes_IID : TGUID = '{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}'; + IsrvArticulos_IID : TGUID = '{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}'; + IsrvInventario_IID : TGUID = '{36AF71D2-B19F-45DA-9C02-576B3A21158A}'; + IsrvPedidosCliente_IID : TGUID = '{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}'; + IsrvFamilias_IID : TGUID = '{D351175C-CBFD-4328-BF2A-FDC0B05A6308}'; + IsrvAlbaranesCliente_IID : TGUID = '{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'; + IsrvAlbaranesProveedor_IID : TGUID = '{66B71884-5CE4-4574-B825-60CDA956B628}'; + IsrvFormasPago_IID : TGUID = '{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}'; + IsrvTiposIVA_IID : TGUID = '{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}'; + IsrvRecibosCliente_IID : TGUID = '{3B68252A-EE6A-4D37-B250-93F2DB940DDF}'; + IsrvRemesasCliente_IID : TGUID = '{33F414D0-0D0B-4384-96CB-D94BC97A0C39}'; + IsrvTiendaWeb_IID : TGUID = '{96FFB465-F1D6-4C96-8744-489A833677DA}'; + IsrvFacturasProveedor_IID : TGUID = '{7655160C-7023-452E-BB0E-C97E29B915E7}'; + IsrvRecibosProveedor_IID : TGUID = '{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}'; + + { Event ID's } + +type + { Forward declarations } + IsrvContactos = interface; + IsrvComisiones = interface; + IsrvLogin = interface; + IsrvEmpresas = interface; + IsrvFacturasCliente = interface; + IsrvPedidosProveedor = interface; + IsrvConfiguracion = interface; + IsrvAlmacenes = interface; + IsrvArticulos = interface; + IsrvInventario = interface; + IsrvPedidosCliente = interface; + IsrvFamilias = interface; + IsrvAlbaranesCliente = interface; + IsrvAlbaranesProveedor = interface; + IsrvFormasPago = interface; + IsrvTiposIVA = interface; + IsrvRecibosCliente = interface; + IsrvRemesasCliente = interface; + IsrvTiendaWeb = interface; + IsrvFacturasProveedor = interface; + IsrvRecibosProveedor = interface; + + TRdxEmpresasArray = class; + + TRdxLoginInfo = class; + + + { TRdxLoginInfo } + TRdxLoginInfo = class(TROComplexType) + private + fUserID: Integer; + fSessionID: String; + fUsuario: String; + fPerfiles: TDAStringArray; + fEmpresas: TRdxEmpresasArray; + function GetPerfiles: TDAStringArray; + function GetEmpresas: TRdxEmpresasArray; + public + procedure Assign(iSource: TPersistent); override; + published + property UserID:Integer read fUserID write fUserID; + property SessionID:String read fSessionID write fSessionID; + property Usuario:String read fUsuario write fUsuario; + property Perfiles:TDAStringArray read GetPerfiles write fPerfiles; + property Empresas:TRdxEmpresasArray read GetEmpresas write fEmpresas; + end; + + { TRdxLoginInfoCollection } + TRdxLoginInfoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(Index: integer): TRdxLoginInfo; + procedure SetItems(Index: 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 = class(TROArray) + private + fCount: Integer; + fItems : array of Integer; + protected + procedure Grow; virtual; + function GetItems(Index: integer): Integer; + procedure SetItems(Index: integer; const Value: Integer); + function GetCount: integer; override; + public + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + function GetItemRef(Index: integer): pointer; override; + procedure Clear; override; + procedure Delete(Index: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + function Add(const Value:Integer): integer; + + property Count : integer read GetCount; + property Items[Index: integer]:Integer read GetItems write SetItems; default; + end; + + { IsrvContactos } + IsrvContactos = interface(IDARemoteService) + ['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvContactos } + CosrvContactos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos; + end; + + { TsrvContactos_Proxy } + TsrvContactos_Proxy = class(TDARemoteService_Proxy, IsrvContactos) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvComisiones } + IsrvComisiones = interface(IDARemoteService) + ['{461DBBE7-293D-497A-8CD1-840401883BCE}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + end; + + { CosrvComisiones } + CosrvComisiones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones; + end; + + { TsrvComisiones_Proxy } + TsrvComisiones_Proxy = class(TDARemoteService_Proxy, IsrvComisiones) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + end; + + { IsrvLogin } + IsrvLogin = interface(IDARemoteService) + ['{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}'] + function Login(const User: String; const Password: String; 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(TDARemoteService_Proxy, IsrvLogin) + protected + function __GetInterfaceName:string; override; + + function Login(const User: String; const Password: String; out LoginInfo: TRdxLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + end; + + { IsrvEmpresas } + IsrvEmpresas = interface(IDARemoteService) + ['{590F06D1-26B4-435B-B636-50CB8FFE6353}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvEmpresas } + CosrvEmpresas = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvEmpresas; + end; + + { TsrvEmpresas_Proxy } + TsrvEmpresas_Proxy = class(TDARemoteService_Proxy, IsrvEmpresas) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvFacturasCliente } + IsrvFacturasCliente = interface(IDARemoteService) + ['{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + end; + + { CosrvFacturasCliente } + CosrvFacturasCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente; + end; + + { TsrvFacturasCliente_Proxy } + TsrvFacturasCliente_Proxy = class(TDARemoteService_Proxy, IsrvFacturasCliente) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + end; + + { IsrvPedidosProveedor } + IsrvPedidosProveedor = interface(IDARemoteService) + ['{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvPedidosProveedor } + CosrvPedidosProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor; + end; + + { TsrvPedidosProveedor_Proxy } + TsrvPedidosProveedor_Proxy = class(TDARemoteService_Proxy, IsrvPedidosProveedor) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { IsrvConfiguracion } + IsrvConfiguracion = interface(IDARemoteService) + ['{0882B8A4-C8AA-424E-8FC1-C6226B670522}'] + function darValor(const CODIGO: String): String; + end; + + { CosrvConfiguracion } + CosrvConfiguracion = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion; + end; + + { TsrvConfiguracion_Proxy } + TsrvConfiguracion_Proxy = class(TDARemoteService_Proxy, IsrvConfiguracion) + protected + function __GetInterfaceName:string; override; + + function darValor(const CODIGO: String): String; + end; + + { IsrvAlmacenes } + IsrvAlmacenes = interface(IDARemoteService) + ['{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvAlmacenes } + CosrvAlmacenes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes; + end; + + { TsrvAlmacenes_Proxy } + TsrvAlmacenes_Proxy = class(TDARemoteService_Proxy, IsrvAlmacenes) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvArticulos } + IsrvArticulos = interface(IDARemoteService) + ['{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvArticulos } + CosrvArticulos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos; + end; + + { TsrvArticulos_Proxy } + TsrvArticulos_Proxy = class(TDARemoteService_Proxy, IsrvArticulos) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvInventario } + IsrvInventario = interface(IDARemoteService) + ['{36AF71D2-B19F-45DA-9C02-576B3A21158A}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvInventario } + CosrvInventario = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario; + end; + + { TsrvInventario_Proxy } + TsrvInventario_Proxy = class(TDARemoteService_Proxy, IsrvInventario) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvPedidosCliente } + IsrvPedidosCliente = interface(IDARemoteService) + ['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvPedidosCliente } + CosrvPedidosCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosCliente; + end; + + { TsrvPedidosCliente_Proxy } + TsrvPedidosCliente_Proxy = class(TDARemoteService_Proxy, IsrvPedidosCliente) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { IsrvFamilias } + IsrvFamilias = interface(IDARemoteService) + ['{D351175C-CBFD-4328-BF2A-FDC0B05A6308}'] + end; + + { CosrvFamilias } + CosrvFamilias = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFamilias; + end; + + { TsrvFamilias_Proxy } + TsrvFamilias_Proxy = class(TDARemoteService_Proxy, IsrvFamilias) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvAlbaranesCliente } + IsrvAlbaranesCliente = interface(IDARemoteService) + ['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvAlbaranesCliente } + CosrvAlbaranesCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente; + end; + + { TsrvAlbaranesCliente_Proxy } + TsrvAlbaranesCliente_Proxy = class(TDARemoteService_Proxy, IsrvAlbaranesCliente) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { IsrvAlbaranesProveedor } + IsrvAlbaranesProveedor = interface(IDARemoteService) + ['{66B71884-5CE4-4574-B825-60CDA956B628}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvAlbaranesProveedor } + CosrvAlbaranesProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesProveedor; + end; + + { TsrvAlbaranesProveedor_Proxy } + TsrvAlbaranesProveedor_Proxy = class(TDARemoteService_Proxy, IsrvAlbaranesProveedor) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvFormasPago } + IsrvFormasPago = interface(IDARemoteService) + ['{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvFormasPago } + CosrvFormasPago = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago; + end; + + { TsrvFormasPago_Proxy } + TsrvFormasPago_Proxy = class(TDARemoteService_Proxy, IsrvFormasPago) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvTiposIVA } + IsrvTiposIVA = interface(IDARemoteService) + ['{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { CosrvTiposIVA } + CosrvTiposIVA = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA; + end; + + { TsrvTiposIVA_Proxy } + TsrvTiposIVA_Proxy = class(TDARemoteService_Proxy, IsrvTiposIVA) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + + { IsrvRecibosCliente } + IsrvRecibosCliente = interface(IDARemoteService) + ['{3B68252A-EE6A-4D37-B250-93F2DB940DDF}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvRecibosCliente } + CosrvRecibosCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosCliente; + end; + + { TsrvRecibosCliente_Proxy } + TsrvRecibosCliente_Proxy = class(TDARemoteService_Proxy, IsrvRecibosCliente) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { IsrvRemesasCliente } + IsrvRemesasCliente = interface(IDARemoteService) + ['{33F414D0-0D0B-4384-96CB-D94BC97A0C39}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvRemesasCliente } + CosrvRemesasCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente; + end; + + { TsrvRemesasCliente_Proxy } + TsrvRemesasCliente_Proxy = class(TDARemoteService_Proxy, IsrvRemesasCliente) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { IsrvTiendaWeb } + IsrvTiendaWeb = interface(IDARemoteService) + ['{96FFB465-F1D6-4C96-8744-489A833677DA}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GetNextAutoIncOSC(const TableName: String): Integer; + function GetDatasetSchemaOSC(const aDatasetName: String): Binary; + function GetDatasetDataExOSC(const DatasetName: String; const Params: TDADatasetParamArray; const UserFilter: String; const IncludeSchema: Boolean; + const MaxRecords: Integer): Binary; + function UpdateDataOSC(const Delta: Binary): Binary; + end; + + { CosrvTiendaWeb } + CosrvTiendaWeb = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiendaWeb; + end; + + { TsrvTiendaWeb_Proxy } + TsrvTiendaWeb_Proxy = class(TDARemoteService_Proxy, IsrvTiendaWeb) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GetNextAutoIncOSC(const TableName: String): Integer; + function GetDatasetSchemaOSC(const aDatasetName: String): Binary; + function GetDatasetDataExOSC(const DatasetName: String; const Params: TDADatasetParamArray; const UserFilter: String; const IncludeSchema: Boolean; + const MaxRecords: Integer): Binary; + function UpdateDataOSC(const Delta: Binary): Binary; + end; + + { IsrvFacturasProveedor } + IsrvFacturasProveedor = interface(IDARemoteService) + ['{7655160C-7023-452E-BB0E-C97E29B915E7}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + end; + + { CosrvFacturasProveedor } + CosrvFacturasProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor; + end; + + { TsrvFacturasProveedor_Proxy } + TsrvFacturasProveedor_Proxy = class(TDARemoteService_Proxy, IsrvFacturasProveedor) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const FacturaID: Integer): Binary; + end; + + { IsrvRecibosProveedor } + IsrvRecibosProveedor = interface(IDARemoteService) + ['{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}'] + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + + { CosrvRecibosProveedor } + CosrvRecibosProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor; + end; + + { TsrvRecibosProveedor_Proxy } + TsrvRecibosProveedor_Proxy = class(TDARemoteService_Proxy, IsrvRecibosProveedor) + protected + function __GetInterfaceName:string; override; + + function GetNextAutoInc(const GeneratorName: String): Integer; + function GenerateReport(const ID: Integer): Binary; + end; + +implementation + +uses + {vcl:} SysUtils, + {RemObjects:} uROEventRepository, 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(Index: integer): Integer; +begin + if (Index < 0) or (Index >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[Index]); + result := fItems[Index]; +end; + +function TRdxEmpresasArray.GetItemRef(Index: integer): pointer; +begin + if (Index < 0) or (Index >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[Index]); + result := @fItems[Index]; +end; + +procedure TRdxEmpresasArray.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure TRdxEmpresasArray.Delete(Index: integer); +var i: integer; +begin + if (Index>=Count) then RaiseError(err_InvalidIndex, [Index]); + + if (Index= Count) then RaiseError(err_ArrayIndexOutOfBounds,[Index]); + fItems[Index] := Value; +end; + +procedure TRdxEmpresasArray.Resize(ElementCount: integer); +begin + 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; + +{ TRdxLoginInfo } + +procedure TRdxLoginInfo.Assign(iSource: TPersistent); +var lSource:TRdxLoginInfo; +begin + inherited Assign(iSource); + if (iSource is TRdxLoginInfo) then begin + lSource := TRdxLoginInfo(iSource); + UserID := lSource.UserID; + SessionID := lSource.SessionID; + Usuario := lSource.Usuario; + Perfiles.Assign(lSource.Perfiles); + Empresas.Assign(lSource.Empresas); + end; +end; + +function TRdxLoginInfo.GetPerfiles: TDAStringArray; +begin + if (fPerfiles = nil) then fPerfiles := TDAStringArray.Create(); + result := fPerfiles; +end; + +function TRdxLoginInfo.GetEmpresas: TRdxEmpresasArray; +begin + if (fEmpresas = nil) then fEmpresas := TRdxEmpresasArray.Create(); + result := fEmpresas; +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(Index: integer): TRdxLoginInfo; +begin + result := TRdxLoginInfo(inherited Items[Index]); +end; + +procedure TRdxLoginInfoCollection.SetItems(Index: integer; const Value: TRdxLoginInfo); +begin + TRdxLoginInfo(inherited Items[Index]).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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvComisiones } + +class function CosrvComisiones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones; +begin + result := TsrvComisiones_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvComisiones_Proxy } + +function TsrvComisiones_Proxy.__GetInterfaceName:string; +begin + result := 'srvComisiones'; +end; + +function TsrvComisiones_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvComisiones_Proxy.GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('AComisionID', TypeInfo(Variant), AComisionID, []); + __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Write('AAgenteID', TypeInfo(Variant), AAgenteID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + 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: String; const Password: String; out LoginInfo: TRdxLoginInfo): Boolean; +var + __request, __response : TMemoryStream; +begin + LoginInfo := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Login'); + __Message.Write('User', TypeInfo(String), User, []); + __Message.Write('Password', TypeInfo(String), Password, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('LoginInfo', TypeInfo(FactuGES_Intf.TRdxLoginInfo), LoginInfo, []); + finally + __request.Free; + __response.Free; + end +end; + +procedure TsrvLogin_Proxy.Logout; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Logout'); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + finally + __request.Free; + __response.Free; + end +end; + +function TsrvLogin_Proxy.Ping: Boolean; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Ping'); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __request.Free; + __response.Free; + end +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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvFacturasCliente_Proxy.GenerateReport(const FacturaID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('FacturaID', TypeInfo(Integer), FacturaID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + 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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvPedidosProveedor_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + 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: String): String; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'darValor'); + __Message.Write('CODIGO', TypeInfo(String), CODIGO, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(String), result, []); + finally + __request.Free; + __response.Free; + end +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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + 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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvInventario } + +class function CosrvInventario.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario; +begin + result := TsrvInventario_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvInventario_Proxy } + +function TsrvInventario_Proxy.__GetInterfaceName:string; +begin + result := 'srvInventario'; +end; + +function TsrvInventario_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvPedidosCliente } + +class function CosrvPedidosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosCliente; +begin + result := TsrvPedidosCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvPedidosCliente_Proxy } + +function TsrvPedidosCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvPedidosCliente'; +end; + +function TsrvPedidosCliente_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvPedidosCliente_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + 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; + +{ 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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvAlbaranesCliente_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + 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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvFormasPago } + +class function CosrvFormasPago.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago; +begin + result := TsrvFormasPago_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvFormasPago_Proxy } + +function TsrvFormasPago_Proxy.__GetInterfaceName:string; +begin + result := 'srvFormasPago'; +end; + +function TsrvFormasPago_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvTiposIVA } + +class function CosrvTiposIVA.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA; +begin + result := TsrvTiposIVA_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvTiposIVA_Proxy } + +function TsrvTiposIVA_Proxy.__GetInterfaceName:string; +begin + result := 'srvTiposIVA'; +end; + +function TsrvTiposIVA_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + 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.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvRecibosCliente_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvRemesasCliente } + +class function CosrvRemesasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente; +begin + result := TsrvRemesasCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvRemesasCliente_Proxy } + +function TsrvRemesasCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvRemesasCliente'; +end; + +function TsrvRemesasCliente_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvRemesasCliente_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvTiendaWeb } + +class function CosrvTiendaWeb.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiendaWeb; +begin + result := TsrvTiendaWeb_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvTiendaWeb_Proxy } + +function TsrvTiendaWeb_Proxy.__GetInterfaceName:string; +begin + result := 'srvTiendaWeb'; +end; + +function TsrvTiendaWeb_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvTiendaWeb_Proxy.GetNextAutoIncOSC(const TableName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoIncOSC'); + __Message.Write('TableName', TypeInfo(String), TableName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvTiendaWeb_Proxy.GetDatasetSchemaOSC(const aDatasetName: String): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetDatasetSchemaOSC'); + __Message.Write('aDatasetName', TypeInfo(String), aDatasetName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvTiendaWeb_Proxy.GetDatasetDataExOSC(const DatasetName: String; const Params: TDADatasetParamArray; const UserFilter: String; const IncludeSchema: Boolean; + const MaxRecords: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetDatasetDataExOSC'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Params', TypeInfo(DataAbstract_Intf.TDADatasetParamArray), Params, []); + __Message.Write('UserFilter', TypeInfo(String), UserFilter, []); + __Message.Write('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []); + __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvTiendaWeb_Proxy.UpdateDataOSC(const Delta: Binary): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'UpdateDataOSC'); + __Message.Write('Delta', TypeInfo(Binary), Delta, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvFacturasProveedor } + +class function CosrvFacturasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor; +begin + result := TsrvFacturasProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvFacturasProveedor_Proxy } + +function TsrvFacturasProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvFacturasProveedor'; +end; + +function TsrvFacturasProveedor_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvFacturasProveedor_Proxy.GenerateReport(const FacturaID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('FacturaID', TypeInfo(Integer), FacturaID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +{ CosrvRecibosProveedor } + +class function CosrvRecibosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor; +begin + result := TsrvRecibosProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvRecibosProveedor_Proxy } + +function TsrvRecibosProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvRecibosProveedor'; +end; + +function TsrvRecibosProveedor_Proxy.GetNextAutoInc(const GeneratorName: String): Integer; +var + __request, __response : TMemoryStream; +begin + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc'); + __Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Integer), result, []); + finally + __request.Free; + __response.Free; + end +end; + +function TsrvRecibosProveedor_Proxy.GenerateReport(const ID: Integer): Binary; +var + __request, __response : TMemoryStream; +begin + result := nil; + __request := TMemoryStream.Create; + __response := TMemoryStream.Create; + + try + __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __Message.WriteToStream(__request); + __TransportChannel.Dispatch(__request, __response); + __Message.ReadFromStream(__response); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __request.Free; + __response.Free; + end +end; + +initialization + RegisterROClass(TRdxLoginInfo); + RegisterROClass(TRdxEmpresasArray); + RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy); + RegisterProxyClass(IsrvComisiones_IID, TsrvComisiones_Proxy); + RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); + RegisterProxyClass(IsrvEmpresas_IID, TsrvEmpresas_Proxy); + RegisterProxyClass(IsrvFacturasCliente_IID, TsrvFacturasCliente_Proxy); + RegisterProxyClass(IsrvPedidosProveedor_IID, TsrvPedidosProveedor_Proxy); + RegisterProxyClass(IsrvConfiguracion_IID, TsrvConfiguracion_Proxy); + RegisterProxyClass(IsrvAlmacenes_IID, TsrvAlmacenes_Proxy); + RegisterProxyClass(IsrvArticulos_IID, TsrvArticulos_Proxy); + RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy); + RegisterProxyClass(IsrvPedidosCliente_IID, TsrvPedidosCliente_Proxy); + RegisterProxyClass(IsrvFamilias_IID, TsrvFamilias_Proxy); + RegisterProxyClass(IsrvAlbaranesCliente_IID, TsrvAlbaranesCliente_Proxy); + RegisterProxyClass(IsrvAlbaranesProveedor_IID, TsrvAlbaranesProveedor_Proxy); + RegisterProxyClass(IsrvFormasPago_IID, TsrvFormasPago_Proxy); + RegisterProxyClass(IsrvTiposIVA_IID, TsrvTiposIVA_Proxy); + RegisterProxyClass(IsrvRecibosCliente_IID, TsrvRecibosCliente_Proxy); + RegisterProxyClass(IsrvRemesasCliente_IID, TsrvRemesasCliente_Proxy); + RegisterProxyClass(IsrvTiendaWeb_IID, TsrvTiendaWeb_Proxy); + RegisterProxyClass(IsrvFacturasProveedor_IID, TsrvFacturasProveedor_Proxy); + RegisterProxyClass(IsrvRecibosProveedor_IID, TsrvRecibosProveedor_Proxy); + + +finalization + UnregisterROClass(TRdxLoginInfo); + UnregisterROClass(TRdxEmpresasArray); + UnregisterProxyClass(IsrvContactos_IID); + UnregisterProxyClass(IsrvComisiones_IID); + UnregisterProxyClass(IsrvLogin_IID); + UnregisterProxyClass(IsrvEmpresas_IID); + UnregisterProxyClass(IsrvFacturasCliente_IID); + UnregisterProxyClass(IsrvPedidosProveedor_IID); + UnregisterProxyClass(IsrvConfiguracion_IID); + UnregisterProxyClass(IsrvAlmacenes_IID); + UnregisterProxyClass(IsrvArticulos_IID); + UnregisterProxyClass(IsrvInventario_IID); + UnregisterProxyClass(IsrvPedidosCliente_IID); + UnregisterProxyClass(IsrvFamilias_IID); + UnregisterProxyClass(IsrvAlbaranesCliente_IID); + UnregisterProxyClass(IsrvAlbaranesProveedor_IID); + UnregisterProxyClass(IsrvFormasPago_IID); + UnregisterProxyClass(IsrvTiposIVA_IID); + UnregisterProxyClass(IsrvRecibosCliente_IID); + UnregisterProxyClass(IsrvRemesasCliente_IID); + UnregisterProxyClass(IsrvTiendaWeb_IID); + UnregisterProxyClass(IsrvFacturasProveedor_IID); + UnregisterProxyClass(IsrvRecibosProveedor_IID); + +end. diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas new file mode 100644 index 00000000..3ab783dc --- /dev/null +++ b/Source/Servicios/FactuGES_Invk.pas @@ -0,0 +1,1012 @@ +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. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, + {RemObjects:} uROServer, uROServerIntf, uROTypes, uROClientIntf, + {Used RODL Intf's:} DataAbstract_Intf, + {Used RODL Invk's:} DataAbstract_Invk, + {Generated:} FactuGES_Intf; + +type + TsrvContactos_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvComisiones_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvLogin_Invoker = class(TDARemoteService_Invoker) + private + protected + 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; + + TsrvEmpresas_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFacturasCliente_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvPedidosProveedor_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvConfiguracion_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_darValor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvAlmacenes_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvArticulos_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvInventario_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvPedidosCliente_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFamilias_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + + TsrvAlbaranesCliente_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvAlbaranesProveedor_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFormasPago_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvTiposIVA_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvRecibosCliente_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvRemesasCliente_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvTiendaWeb_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetNextAutoIncOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetDatasetSchemaOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetDatasetDataExOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_UpdateDataOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFacturasProveedor_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvRecibosProveedor_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + +implementation + +uses + {RemObjects:} uRORes, uROClient; + +{ TsrvContactos_Invoker } + +procedure TsrvContactos_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvContactos).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvContactos', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvComisiones_Invoker } + +procedure TsrvComisiones_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvComisiones).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvComisiones', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvComisiones_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; } +var + AComisionID: Variant; + FechaIni: String; + FechaFin: String; + AAgenteID: Variant; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('AComisionID', TypeInfo(Variant), AComisionID, []); + __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Read('AAgenteID', TypeInfo(Variant), AAgenteID, []); + + lResult := (__Instance as IsrvComisiones).GenerateReport(AComisionID, FechaIni, FechaFin, AAgenteID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvComisiones', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvLogin_Invoker } + +procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Login(const User: String; const Password: String; out LoginInfo: TRdxLoginInfo): Boolean; } +var + User: String; + Password: String; + LoginInfo: FactuGES_Intf.TRdxLoginInfo; + lResult: Boolean; + __lObjectDisposer: TROObjectDisposer; +begin + LoginInfo := nil; + try + __Message.Read('User', TypeInfo(String), User, []); + __Message.Read('Password', TypeInfo(String), Password, []); + + lResult := (__Instance as IsrvLogin).Login(User, Password, LoginInfo); + + __Message.Initialize(__Transport, 'FactuGES', 'srvLogin', 'LoginResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('LoginInfo', TypeInfo(FactuGES_Intf.TRdxLoginInfo), LoginInfo, []); + __Message.Finalize; + + 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.Initialize(__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.Initialize(__Transport, 'FactuGES', 'srvLogin', 'PingResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvEmpresas_Invoker } + +procedure TsrvEmpresas_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvEmpresas).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvEmpresas', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvFacturasCliente_Invoker } + +procedure TsrvFacturasCliente_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvFacturasCliente).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvFacturasCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const FacturaID: Integer): Binary; } +var + FacturaID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FacturaID', TypeInfo(Integer), FacturaID, []); + + lResult := (__Instance as IsrvFacturasCliente).GenerateReport(FacturaID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvPedidosProveedor_Invoker } + +procedure TsrvPedidosProveedor_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvPedidosProveedor).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvPedidosProveedor_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvPedidosProveedor).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvConfiguracion_Invoker } + +procedure TsrvConfiguracion_Invoker.Invoke_darValor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function darValor(const CODIGO: String): String; } +var + CODIGO: String; + lResult: String; +begin + try + __Message.Read('CODIGO', TypeInfo(String), CODIGO, []); + + lResult := (__Instance as IsrvConfiguracion).darValor(CODIGO); + + __Message.Initialize(__Transport, 'FactuGES', 'srvConfiguracion', 'darValorResponse'); + __Message.Write('Result', TypeInfo(String), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvAlmacenes_Invoker } + +procedure TsrvAlmacenes_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvAlmacenes).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvAlmacenes', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvArticulos_Invoker } + +procedure TsrvArticulos_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvArticulos).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvArticulos', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvInventario_Invoker } + +procedure TsrvInventario_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvInventario).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvInventario', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvPedidosCliente_Invoker } + +procedure TsrvPedidosCliente_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvPedidosCliente).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosCliente', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvPedidosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvPedidosCliente).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosCliente', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvAlbaranesCliente_Invoker } + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvAlbaranesCliente).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(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).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvAlbaranesProveedor_Invoker } + +procedure TsrvAlbaranesProveedor_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvAlbaranesProveedor).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesProveedor', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvFormasPago_Invoker } + +procedure TsrvFormasPago_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvFormasPago).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvFormasPago', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvTiposIVA_Invoker } + +procedure TsrvTiposIVA_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvTiposIVA).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiposIVA', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +{ TsrvRecibosCliente_Invoker } + +procedure TsrvRecibosCliente_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvRecibosCliente).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRecibosCliente', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvRecibosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvRecibosCliente).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRecibosCliente', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvRemesasCliente_Invoker } + +procedure TsrvRemesasCliente_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvRemesasCliente).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRemesasCliente', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvRemesasCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvRemesasCliente).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRemesasCliente', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvTiendaWeb_Invoker } + +procedure TsrvTiendaWeb_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvTiendaWeb).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiendaWeb', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvTiendaWeb_Invoker.Invoke_GetNextAutoIncOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoIncOSC(const TableName: String): Integer; } +var + TableName: String; + lResult: Integer; +begin + try + __Message.Read('TableName', TypeInfo(String), TableName, []); + + lResult := (__Instance as IsrvTiendaWeb).GetNextAutoIncOSC(TableName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiendaWeb', 'GetNextAutoIncOSCResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvTiendaWeb_Invoker.Invoke_GetDatasetSchemaOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDatasetSchemaOSC(const aDatasetName: String): Binary; } +var + aDatasetName: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('aDatasetName', TypeInfo(String), aDatasetName, []); + + lResult := (__Instance as IsrvTiendaWeb).GetDatasetSchemaOSC(aDatasetName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiendaWeb', 'GetDatasetSchemaOSCResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvTiendaWeb_Invoker.Invoke_GetDatasetDataExOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDatasetDataExOSC(const DatasetName: String; const Params: TDADatasetParamArray; const UserFilter: String; const IncludeSchema: Boolean; + const MaxRecords: Integer): Binary; } +var + DatasetName: String; + Params: DataAbstract_Intf.TDADatasetParamArray; + UserFilter: String; + IncludeSchema: Boolean; + MaxRecords: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + Params := nil; + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Params', TypeInfo(DataAbstract_Intf.TDADatasetParamArray), Params, []); + __Message.Read('UserFilter', TypeInfo(String), UserFilter, []); + __Message.Read('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []); + __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); + + lResult := (__Instance as IsrvTiendaWeb).GetDatasetDataExOSC(DatasetName, Params, UserFilter, IncludeSchema, MaxRecords); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiendaWeb', 'GetDatasetDataExOSCResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(Params); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvTiendaWeb_Invoker.Invoke_UpdateDataOSC(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function UpdateDataOSC(const Delta: Binary): Binary; } +var + Delta: Binary; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + Delta := nil; + lResult := nil; + try + __Message.Read('Delta', TypeInfo(Binary), Delta, []); + + lResult := (__Instance as IsrvTiendaWeb).UpdateDataOSC(Delta); + + __Message.Initialize(__Transport, 'FactuGES', 'srvTiendaWeb', 'UpdateDataOSCResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(Delta); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvFacturasProveedor_Invoker } + +procedure TsrvFacturasProveedor_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvFacturasProveedor).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasProveedor', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvFacturasProveedor_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const FacturaID: Integer): Binary; } +var + FacturaID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FacturaID', TypeInfo(Integer), FacturaID, []); + + lResult := (__Instance as IsrvFacturasProveedor).GenerateReport(FacturaID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasProveedor', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvRecibosProveedor_Invoker } + +procedure TsrvRecibosProveedor_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetNextAutoInc(const GeneratorName: String): Integer; } +var + GeneratorName: String; + lResult: Integer; +begin + try + __Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []); + + lResult := (__Instance as IsrvRecibosProveedor).GetNextAutoInc(GeneratorName); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRecibosProveedor', 'GetNextAutoIncResponse'); + __Message.Write('Result', TypeInfo(Integer), lResult, []); + __Message.Finalize; + + finally + end; +end; + +procedure TsrvRecibosProveedor_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvRecibosProveedor).GenerateReport(ID); + + __Message.Initialize(__Transport, 'FactuGES', 'srvRecibosProveedor', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +end. diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res new file mode 100644 index 00000000..fd6337e2 Binary files /dev/null and b/Source/Servicios/RODLFILE.res differ diff --git a/Source/Servicios/srvConfiguracion_Impl.dfm b/Source/Servicios/srvConfiguracion_Impl.dfm new file mode 100644 index 00000000..b016f655 --- /dev/null +++ b/Source/Servicios/srvConfiguracion_Impl.dfm @@ -0,0 +1,64 @@ +object srvConfiguracion: TsrvConfiguracion + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schConfiguracion + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 160 + Width = 300 + object schConfiguracion: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + BlobType = dabtUnknown + 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 = 100 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 40 + Top = 16 + end + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 72 + end +end diff --git a/Source/Servicios/srvConfiguracion_Impl.pas b/Source/Servicios/srvConfiguracion_Impl.pas new file mode 100644 index 00000000..7818c20a --- /dev/null +++ b/Source/Servicios/srvConfiguracion_Impl.pas @@ -0,0 +1,81 @@ +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, +// {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, +// {Generated:} FactuGES_Intf, uDAClasses; + {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDABINAdapter; + + +type + { TsrvConfiguracion } + TsrvConfiguracion = class(TDARemoteService, IsrvConfiguracion) + DABINAdapter: TDABINAdapter; + schConfiguracion: TDASchema; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + protected + { IsrvConfiguracion methods } + function DarValor(const CODIGO: String): String; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDAInterfaces, uDataModuleServer, Variants, + uROClasses; + +procedure Create_srvConfiguracion(out anInstance : IUnknown); +begin + anInstance := TsrvConfiguracion.Create(NIL); +end; + +{ srvConfiguracion } +procedure TsrvConfiguracion.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvConfiguracion.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvConfiguracion.DarValor(const CODIGO: String): String; +var + ADataSet : IDADataset; +begin + try + ADataSet := schConfiguracion.NewDataset(Connection, 'darValor', ['CODIGO'], [CODIGO]); + ADataSet.Open; + if ADataSet.Dataset.RecordCount > 0 then + Result := ADataSet.Dataset.Fields[0].AsVariant + else + RaiseError('Falta variable de configuracion: ' + CODIGO); + finally + ADataSet.Close; + end; +end; + +initialization + TROClassFactory.Create('srvConfiguracion', Create_srvConfiguracion, TsrvConfiguracion_Invoker); + +finalization + +end. diff --git a/Source/Servicios/srvLogin_Impl.dfm b/Source/Servicios/srvLogin_Impl.dfm new file mode 100644 index 00000000..1dc3fb8e --- /dev/null +++ b/Source/Servicios/srvLogin_Impl.dfm @@ -0,0 +1,175 @@ +object srvLogin: TsrvLogin + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + AcquireConnection = True + ConnectionName = 'IBX' + ServiceSchema = schLogin + ServiceAdapter = DABINAdapter + OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object schLogin: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID_USUARIO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'ID_USUARIO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + 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 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'USUARIO' + DataType = datString + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PASS' + DataType = datString + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + 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 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'PASSWORD' + DataType = datString + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'USERID' + DataType = datString + BlobType = dabtUnknown + 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 = <> + Left = 40 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 88 + end +end diff --git a/Source/Servicios/srvLogin_Impl.pas b/Source/Servicios/srvLogin_Impl.pas new file mode 100644 index 00000000..69da6b60 --- /dev/null +++ b/Source/Servicios/srvLogin_Impl.pas @@ -0,0 +1,144 @@ +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:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf, uDAClasses, uDAInterfaces, uDAEngine, + uDADataTable, uDABINAdapter, uROClient; + +const + PERFIL_ADMINISTRADORES = 'Administradores'; + +type + { TsrvLogin } + TsrvLogin = class(TDARemoteService, IsrvLogin) + DABINAdapter: TDABINAdapter; + schLogin: TDASchema; + procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService; + var ConnectionName: string); + procedure DARemoteServiceCreate(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, uRORemoteDataModule; + +procedure Create_srvLogin(out anInstance : IUnknown); +begin + anInstance := TsrvLogin.Create(NIL); +end; + +{ srvLogin } +{ TsrvLogin } + +procedure TsrvLogin.DARemoteServiceBeforeAcquireConnection( + Sender: TDARemoteService; var ConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvLogin.DARemoteServiceCreate(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 := TDAStringArray.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 con DBSesiones/Configuracion/uConexionBD.dfm b/Source/Servidor con DBSesiones/Configuracion/uConexionBD.dfm new file mode 100644 index 00000000..fa72bcf0 --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uConexionBD.dfm @@ -0,0 +1,142 @@ +inherited frConexionBD: TfrConexionBD + Visible = True + ExplicitWidth = 451 + ExplicitHeight = 304 + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 209 + Caption = 'Servidor de base de datos' + 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 = lfUltraFlat + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfUltraFlat + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfUltraFlat + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfUltraFlat + 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 con DBSesiones/Configuracion/uConexionBD.pas b/Source/Servidor con DBSesiones/Configuracion/uConexionBD.pas new file mode 100644 index 00000000..e5c79ca3 --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uConexionBD.pas @@ -0,0 +1,106 @@ +unit uConexionBD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, cxShellBrowserDialog, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, + DB, IBDatabase, uFrameConfiguracion; + +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('Conexión válida con la base de datos.', 'FactuGES', MB_OK); + Connected := False; + except + on E : Exception do + begin + Aux := 'No se ha podido establecer la conexión 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 con DBSesiones/Configuracion/uConfGeneral.dfm b/Source/Servidor con DBSesiones/Configuracion/uConfGeneral.dfm new file mode 100644 index 00000000..7e7f40f8 --- /dev/null +++ b/Source/Servidor con DBSesiones/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 con DBSesiones/Configuracion/uConfGeneral.pas b/Source/Servidor con DBSesiones/Configuracion/uConfGeneral.pas new file mode 100644 index 00000000..02452ab3 --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uConfGeneral.pas @@ -0,0 +1,52 @@ +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; + +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 con DBSesiones/Configuracion/uConfiguracion.dfm b/Source/Servidor con DBSesiones/Configuracion/uConfiguracion.dfm new file mode 100644 index 00000000..8ae841a1 --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uConfiguracion.dfm @@ -0,0 +1,179 @@ +object fConfiguracion: TfConfiguracion + Left = 303 + Top = 203 + BorderStyle = bsDialog + Caption = 'Configuraci'#243'n' + ClientHeight = 442 + ClientWidth = 623 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 445 + Top = 407 + Width = 75 + Height = 25 + Action = actAceptar + ModalResult = 1 + TabOrder = 0 + end + object Button2: TButton + Left = 533 + Top = 407 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + object JvSettingsTreeView1: TJvSettingsTreeView + Left = 8 + Top = 8 + Width = 193 + Height = 385 + PageDefault = 0 + PageList = JvPageList1 + Images = PngImageList1 + Indent = 19 + TabOrder = 2 + OnChanging = JvSettingsTreeView1Changing + Items.NodeData = { + 0102000000270000000200000002000000FFFFFFFFFFFFFFFF00000000000000 + 0007470065006E006500720061006C0037000000FFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFF01000000000000000F43006F006E00650078006900F3006E00200063 + 006F006E00200042004400} + Items.Links = {020000000000000000000000} + end + object JvPageList1: TJvPageList + Left = 216 + Top = 8 + Width = 394 + Height = 385 + ActivePage = JvStandardPage1 + PropagateEnable = False + object JvStandardPage1: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage1' + inline frConfGeneral1: TfrConfGeneral + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + ExplicitWidth = 394 + ExplicitHeight = 385 + end + end + object JvStandardPage2: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage2' + inline frConfConexionBD: TfrConexionBD + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + ExplicitWidth = 394 + ExplicitHeight = 385 + end + end + end + object ActionList1: TActionList + Left = 8 + Top = 400 + 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 = 48 + Top = 400 + 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 = 88 + Top = 400 + Bitmap = {} + end +end diff --git a/Source/Servidor con DBSesiones/Configuracion/uConfiguracion.pas b/Source/Servidor con DBSesiones/Configuracion/uConfiguracion.pas new file mode 100644 index 00000000..e64160ce --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uConfiguracion.pas @@ -0,0 +1,110 @@ +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; + JvSettingsTreeView1: TJvSettingsTreeView; + JvPageList1: TJvPageList; + JvStandardPage1: TJvStandardPage; + JvStandardPage2: TJvStandardPage; + frConfGeneral1: TfrConfGeneral; + frConfConexionBD: TfrConexionBD; + procedure tvArbolChange(Sender: TObject; Node: TTreeNode); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure JvSettingsTreeView1Changing(Sender: TObject; Node: TTreeNode; + var AllowChange: Boolean); + 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.tvArbolChange(Sender: TObject; Node: TTreeNode); +begin +{ if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := CreateFrame(pnlPagina, TfrConfGeneral); + 1 : FPaginaActual := CreateFrame(pnlPagina, TfrConexionBD); + 2 : FPaginaActual := CreateFrame(pnlPagina, TfrConfFicherosEDI); + end; + Self.Update; + pnlHeader.LabelCaption := Node.Text;} +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; +end; + +procedure TfConfiguracion.JvSettingsTreeView1Changing(Sender: TObject; + Node: TTreeNode; var AllowChange: Boolean); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := frConfGeneral1; + 1 : FPaginaActual := frConfConexionBD; + end; + if Assigned(FPaginaActual) then + FPaginaActual.Init; + Self.Update; +end; + +end. diff --git a/Source/Servidor con DBSesiones/Configuracion/uFrameConfiguracion.dfm b/Source/Servidor con DBSesiones/Configuracion/uFrameConfiguracion.dfm new file mode 100644 index 00000000..a2649c67 --- /dev/null +++ b/Source/Servidor con DBSesiones/Configuracion/uFrameConfiguracion.dfm @@ -0,0 +1,10 @@ +object FrameConfiguracion: TFrameConfiguracion + Left = 0 + Top = 0 + Width = 443 + Height = 277 + Align = alClient + ParentBackground = False + TabOrder = 0 + Visible = False +end diff --git a/Source/Servidor con DBSesiones/Configuracion/uFrameConfiguracion.pas b/Source/Servidor con DBSesiones/Configuracion/uFrameConfiguracion.pas new file mode 100644 index 00000000..c03ed29b --- /dev/null +++ b/Source/Servidor con DBSesiones/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 con DBSesiones/FactuGES_Server.bdsproj b/Source/Servidor con DBSesiones/FactuGES_Server.bdsproj new file mode 100644 index 00000000..779d7fd7 --- /dev/null +++ b/Source/Servidor con DBSesiones/FactuGES_Server.bdsproj @@ -0,0 +1,540 @@ + + + + + + + + + + + + FactuGES_Server.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 + 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 + + + + 3 + 0 + 1 + False + False + False + 16384 + 1048576 + 4194304 + + False + + + ..\Output\Servidor + + + + ..\DataAbstract_D10\Lib + 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;frx10;frxADO10;frxBDE10;frxDB10;frxDBX10;frxe10;frxIBX10;frxTee10;fs10;fsADO10;fsBDE10;fsDB10;fsIBX10;fsTee10;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 + EUREKALOG;EUREKALOG_VER5 + + False + + + + + + False + + + + + + False + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1034 + 1252 + + + Rodax Software S.L. + + 1.0.0.0 + + + + FactuGES_Server.exe + FactuGES_Server + 1.0.0.0 + + + ExpressCommonLibrary 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. + ExpressScheduler 2 by Developer Express Inc. + ExpressQuantumTreeList 4 by Developer Express Inc. + ExpressVerticalGrid 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 + ExpressGDI+ Library by Developer Express Inc. + + + False + + diff --git a/Source/Servidor con DBSesiones/FactuGES_Server.dpr b/Source/Servidor con DBSesiones/FactuGES_Server.dpr new file mode 100644 index 00000000..b1473b4a --- /dev/null +++ b/Source/Servidor con DBSesiones/FactuGES_Server.dpr @@ -0,0 +1,45 @@ +program FactuGES_Server; + +{#ROGEN:..\Servicios\FactuGES.rodl} // RemObjects: Careful, do not remove! + +uses + ExceptionLog, + uROComInit, + Forms, + uServerMainForm in 'uServerMainForm.pas' {fServerForm}, + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + uConexionBD in 'Configuracion\uConexionBD.pas', + uConfGeneral in 'Configuracion\uConfGeneral.pas', + uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion}, + uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame}, + uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule}, + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas', + srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService}, + uDatabaseUtils in 'Utiles\uDatabaseUtils.pas', + srvLogin_Impl in '..\Servicios\srvLogin_Impl.pas', + srvPresupuestos_Impl in '..\Modulos\Presupuestos\Servidor\srvPresupuestos_Impl.pas' {srvPresupuestos: TDARemoteService}, + schPresupuestosClient_Intf in '..\Modulos\Presupuestos\Model\schPresupuestosClient_Intf.pas', + schPresupuestosServer_Intf in '..\Modulos\Presupuestos\Model\schPresupuestosServer_Intf.pas', + srvEmpresas_Impl in '..\Modulos\Empresas\Servidor\srvEmpresas_Impl.pas', + schEmpresasClient_Intf in '..\Modulos\Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in '..\Modulos\Empresas\Model\schEmpresasServer_Intf.pas', + uSesionesUtils in 'Utiles\uSesionesUtils.pas', + uUsersManager in 'uUsersManager.pas', + schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', + schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', + srvFacturasCliente_Impl in '..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas' {srvFacturasCliente: TDARemoteService}, + schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas'; + +{$R *.res} +{$R ..\Servicios\RODLFile.res} + +begin + Application.Initialize; + Application.Title := 'FactuGES (Servidor)'; + Application.CreateForm(TdmServer, dmServer); + Application.CreateForm(TfServerForm, fServerForm); + Application.Run; + Application.Terminate; +end. diff --git a/Source/Servidor con DBSesiones/FactuGES_Server.drc b/Source/Servidor con DBSesiones/FactuGES_Server.drc new file mode 100644 index 00000000..4a92cde8 --- /dev/null +++ b/Source/Servidor con DBSesiones/FactuGES_Server.drc @@ -0,0 +1,2412 @@ +/* VER180 + Generated by the Borland 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 MidConst_SErrorLoadingMidas 64336 +#define MidConst_SCannotCreateDataSet 64337 +#define MidConst_SNoConnectToBroker 64338 +#define MidConst_SNoParentConnection 64339 +#define MidConst_SInvalidOptParamType 64340 +#define MidConst_SConstraintFailed 64341 +#define MidConst_SField 64342 +#define MidConst_SRecConstFail 64343 +#define MidConst_SFieldConstFail 64344 +#define MidConst_SDefExprFail 64345 +#define MidConst_SNoEditsAllowed 64346 +#define MidConst_SNoDeletesAllowed 64347 +#define MidConst_SNoInsertsAllowed 64348 +#define MidConst_SConnectionMissing 64349 +#define MidConst_SNoCircularConnection 64350 +#define TeeConst_TeeMsg_ShapeGallery2 64352 +#define TeeConst_TeeMsg_ValuesX 64353 +#define TeeConst_TeeMsg_ValuesY 64354 +#define TeeConst_TeeMsg_ValuesPie 64355 +#define TeeConst_TeeMsg_ValuesBar 64356 +#define TeeConst_TeeMsg_ValuesAngle 64357 +#define TeeConst_TeeMsg_ValuesGanttStart 64358 +#define TeeConst_TeeMsg_ValuesGanttEnd 64359 +#define TeeConst_TeeMsg_ValuesGanttNextTask 64360 +#define TeeConst_TeeMsg_ValuesBubbleRadius 64361 +#define TeeConst_TeeMsg_ValuesArrowEndX 64362 +#define TeeConst_TeeMsg_ValuesArrowEndY 64363 +#define MidConst_SNoDataProvider 64364 +#define MidConst_SInvalidDataPacket 64365 +#define MidConst_SRefreshError 64366 +#define MidConst_SNoCircularReference 64367 +#define TeeConst_TeeMsg_DefaultFontSize 64368 +#define TeeConst_TeeMsg_DefaultGalleryFontSize 64369 +#define TeeConst_TeeMsg_FunctionAdd 64370 +#define TeeConst_TeeMsg_FunctionSubtract 64371 +#define TeeConst_TeeMsg_FunctionMultiply 64372 +#define TeeConst_TeeMsg_FunctionDivide 64373 +#define TeeConst_TeeMsg_FunctionHigh 64374 +#define TeeConst_TeeMsg_FunctionLow 64375 +#define TeeConst_TeeMsg_FunctionAverage 64376 +#define TeeConst_TeeMsg_GalleryShape 64377 +#define TeeConst_TeeMsg_GalleryBubble 64378 +#define TeeConst_TeeMsg_DefaultFontName 64379 +#define TeeConst_TeeMsg_CheckPointerSize 64380 +#define TeeConst_TeeMsg_FunctionPeriod 64381 +#define TeeConst_TeeMsg_PieOther 64382 +#define TeeConst_TeeMsg_ShapeGallery1 64383 +#define TeeConst_TeeMsg_PieSample8 64384 +#define TeeConst_TeeMsg_GalleryChartName 64385 +#define TeeConst_TeeMsg_GalleryStandard 64386 +#define TeeConst_TeeMsg_GalleryFunctions 64387 +#define TeeConst_TeeMsg_GalleryArrow 64388 +#define TeeConst_TeeMsg_GalleryGantt 64389 +#define TeeConst_TeeMsg_GanttSample1 64390 +#define TeeConst_TeeMsg_GanttSample2 64391 +#define TeeConst_TeeMsg_GanttSample3 64392 +#define TeeConst_TeeMsg_GanttSample4 64393 +#define TeeConst_TeeMsg_GanttSample5 64394 +#define TeeConst_TeeMsg_GanttSample6 64395 +#define TeeConst_TeeMsg_GanttSample7 64396 +#define TeeConst_TeeMsg_GanttSample8 64397 +#define TeeConst_TeeMsg_GanttSample9 64398 +#define TeeConst_TeeMsg_GanttSample10 64399 +#define TeeConst_TeeMsg_AxisLabels 64400 +#define TeeConst_TeeMsg_GalleryLine 64401 +#define TeeConst_TeeMsg_GalleryPoint 64402 +#define TeeConst_TeeMsg_GalleryArea 64403 +#define TeeConst_TeeMsg_GalleryBar 64404 +#define TeeConst_TeeMsg_GalleryHorizBar 64405 +#define TeeConst_TeeMsg_GalleryPie 64406 +#define TeeConst_TeeMsg_GalleryFastLine 64407 +#define TeeConst_TeeMsg_Rotation 64408 +#define TeeConst_TeeMsg_PieSample1 64409 +#define TeeConst_TeeMsg_PieSample2 64410 +#define TeeConst_TeeMsg_PieSample3 64411 +#define TeeConst_TeeMsg_PieSample4 64412 +#define TeeConst_TeeMsg_PieSample5 64413 +#define TeeConst_TeeMsg_PieSample6 64414 +#define TeeConst_TeeMsg_PieSample7 64415 +#define TeeConst_TeeMsg_AxisLogDateTime 64416 +#define TeeConst_TeeMsg_AxisLogNotPositive 64417 +#define TeeConst_TeeMsg_AxisLabelSep 64418 +#define TeeConst_TeeMsg_AxisIncrementNeg 64419 +#define TeeConst_TeeMsg_AxisMinMax 64420 +#define TeeConst_TeeMsg_AxisMaxMin 64421 +#define TeeConst_TeeMsg_AxisLogBase 64422 +#define TeeConst_TeeMsg_MaxPointsPerPage 64423 +#define TeeConst_TeeMsg_3dPercent 64424 +#define TeeConst_TeeMsg_CircularSeries 64425 +#define TeeConst_TeeMsg_BarWidthPercent 64426 +#define TeeConst_TeeMsg_BarOffsetPercent 64427 +#define TeeConst_TeeMsg_DefaultPercentOf 64428 +#define TeeConst_TeeMsg_DefPercentFormat 64429 +#define TeeConst_TeeMsg_DefValueFormat 64430 +#define TeeConst_TeeMsg_AxisTitle 64431 +#define pnglang_EPNGOutMemoryText 64432 +#define pnglang_EPNGHeaderNotPresentText 64433 +#define OleConst_SLinkProperties 64434 +#define OleConst_SInvalidLinkSource 64435 +#define OleConst_SCannotBreakLink 64436 +#define OleConst_SEmptyContainer 64437 +#define OleConst_SInvalidVerb 64438 +#define OleConst_SPropDlgCaption 64439 +#define OleConst_SInvalidStreamFormat 64440 +#define TeeConst_TeeMsg_LegendTopPos 64441 +#define TeeConst_TeeMsg_LegendFirstValue 64442 +#define TeeConst_TeeMsg_LegendColorWidth 64443 +#define TeeConst_TeeMsg_SeriesSetDataSource 64444 +#define TeeConst_TeeMsg_SeriesInvDataSource 64445 +#define TeeConst_TeeMsg_FillSample 64446 +#define TeeConst_TeeMsg_Angle 64447 +#define pnglang_EPNGMissingMultipleIDATText 64448 +#define pnglang_EPNGZLIBErrorText 64449 +#define pnglang_EPNGInvalidPaletteText 64450 +#define pnglang_EPNGInvalidFileHeaderText 64451 +#define pnglang_EPNGIHDRNotFirstText 64452 +#define pnglang_EPNGSizeExceedsText 64453 +#define pnglang_EPNGUnknownPalEntryText 64454 +#define pnglang_EPNGUnknownCriticalChunkText 64455 +#define pnglang_EPNGUnknownCompressionText 64456 +#define pnglang_EPNGUnknownInterlaceText 64457 +#define pnglang_EPNGCannotAssignChunkText 64458 +#define pnglang_EPNGUnexpectedEndText 64459 +#define pnglang_EPNGNoImageDataText 64460 +#define pnglang_EPNGCannotChangeSizeText 64461 +#define pnglang_EPNGCannotAddChunkText 64462 +#define pnglang_EPNGCannotAddInvalidImageText 64463 +#define cxEditConsts_scxRegExprIllegalIntegerValue 64464 +#define cxEditConsts_scxRegExprTooBigReferenceNumber 64465 +#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64466 +#define cxEditConsts_scxRegExprSubrangeOrder 64467 +#define cxEditConsts_scxRegExprHexNumberExpected0 64468 +#define cxEditConsts_scxRegExprHexNumberExpected 64469 +#define cxEditConsts_scxRegExprMissing 64470 +#define cxEditConsts_scxRegExprUnnecessary 64471 +#define cxEditConsts_scxRegExprIncorrectSpace 64472 +#define cxEditConsts_scxRegExprNotCompiled 64473 +#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64474 +#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64475 +#define cxEditConsts_scxMaskEditRegExprError 64476 +#define cxEditConsts_scxMaskEditInvalidEditValue 64477 +#define pnglang_EPngInvalidCRCText 64478 +#define pnglang_EPNGInvalidIHDRText 64479 +#define cxEditConsts_cxSDateBOM 64480 +#define cxEditConsts_cxSDateEOM 64481 +#define cxEditConsts_cxSDateNow 64482 +#define cxEditConsts_scxSEditRepositoryButtonItem 64483 +#define cxEditConsts_scxSEditRepositoryMaskItem 64484 +#define cxEditConsts_scxSEditRepositoryTextItem 64485 +#define cxEditConsts_scxRegExprLine 64486 +#define cxEditConsts_scxRegExprChar 64487 +#define cxEditConsts_scxRegExprNotAssignedSourceStream 64488 +#define cxEditConsts_scxRegExprEmptySourceStream 64489 +#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64490 +#define cxEditConsts_scxRegExprCantUseStarQuantifier 64491 +#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64492 +#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64493 +#define cxEditConsts_scxRegExprIllegalSymbol 64494 +#define cxEditConsts_scxRegExprIllegalQuantifier 64495 +#define cxEditConsts_cxSDateYesterday 64496 +#define cxEditConsts_cxSDateTomorrow 64497 +#define cxEditConsts_cxSDateSunday 64498 +#define cxEditConsts_cxSDateMonday 64499 +#define cxEditConsts_cxSDateTuesday 64500 +#define cxEditConsts_cxSDateWednesday 64501 +#define cxEditConsts_cxSDateThursday 64502 +#define cxEditConsts_cxSDateFriday 64503 +#define cxEditConsts_cxSDateSaturday 64504 +#define cxEditConsts_cxSDateFirst 64505 +#define cxEditConsts_cxSDateSecond 64506 +#define cxEditConsts_cxSDateThird 64507 +#define cxEditConsts_cxSDateFourth 64508 +#define cxEditConsts_cxSDateFifth 64509 +#define cxEditConsts_cxSDateSixth 64510 +#define cxEditConsts_cxSDateSeventh 64511 +#define IBSQLMonitor_StrPrepare 64512 +#define IBSQLMonitor_StrPlan 64513 +#define IBSQLMonitor_StrPlanCantRetrive 64514 +#define IBSQLMonitor_StrCommitHardComm 64515 +#define IBSQLMonitor_StrCommitRetaining 64516 +#define IBSQLMonitor_StrRollback 64517 +#define IBSQLMonitor_StrRollbackRetainin 64518 +#define IBSQLMonitor_StrStartTransaction 64519 +#define IBSQLMonitor_StrApplication 64520 +#define cxDataConsts_cxSDataReadError 64521 +#define cxDataConsts_cxSDataWriteError 64522 +#define cxEditConsts_cxSEditInvalidRepositoryItem 64523 +#define cxEditConsts_cxSEditNumericValueConvertError 64524 +#define cxEditConsts_cxSEditValidateErrorText 64525 +#define cxEditConsts_cxSEditValueOutOfBounds 64526 +#define cxEditConsts_cxSDateToday 64527 +#define IBXConst_SIB65feature 64528 +#define IBXConst_SLoginPromptFailure 64529 +#define IBXConst_SIB70feature 64530 +#define IBXConst_SIB71feature 64531 +#define IBSQLMonitor_StrConnect 64532 +#define IBSQLMonitor_StrDisconnect 64533 +#define IBSQLMonitor_StrMisc 64534 +#define IBSQLMonitor_StrError 64535 +#define IBSQLMonitor_StrAttach 64536 +#define IBSQLMonitor_StrDetach 64537 +#define IBSQLMonitor_StrQuery 64538 +#define IBSQLMonitor_StrStart 64539 +#define IBSQLMonitor_StrExecute 64540 +#define IBSQLMonitor_StrNULL 64541 +#define IBSQLMonitor_StrBLOB 64542 +#define IBSQLMonitor_StrFetch 64543 +#define IBXConst_SNoOptionsSet 64544 +#define IBXConst_SNoDestinationDirectory 64545 +#define IBXConst_SNosourceDirectory 64546 +#define IBXConst_SNoUninstallFile 64547 +#define IBXConst_SOptionNeedsClient 64548 +#define IBXConst_SOptionNeedsServer 64549 +#define IBXConst_SInvalidOption 64550 +#define IBXConst_SInvalidOnErrorResult 64551 +#define IBXConst_SInvalidOnStatusResult 64552 +#define IBXConst_SDPBConstantUnknownEx 64553 +#define IBXConst_STPBConstantUnknownEx 64554 +#define IBXConst_SUnknownPlan 64555 +#define IBXConst_SFieldSizeMismatch 64556 +#define IBXConst_SEventAlreadyRegistered 64557 +#define IBXConst_SStringTooLarge 64558 +#define IBXConst_SNoTimers 64559 +#define IBXConst_SSPBConstantUnknown 64560 +#define IBXConst_SServiceActive 64561 +#define IBXConst_SServiceInActive 64562 +#define IBXConst_SServerNameMissing 64563 +#define IBXConst_SQueryParamsError 64564 +#define IBXConst_SStartParamsError 64565 +#define IBXConst_SOutputParsingError 64566 +#define IBXConst_SUseSpecificProcedures 64567 +#define IBXConst_SSQLMonitorAlreadyPresent 64568 +#define IBXConst_SCantPrintValue 64569 +#define IBXConst_SEOFReached 64570 +#define IBXConst_SEOFInComment 64571 +#define IBXConst_SEOFInString 64572 +#define IBXConst_SParamNameExpected 64573 +#define IBXConst_SSuccess 64574 +#define IBXConst_SDelphiException 64575 +#define IBXConst_SNoProvider 64576 +#define IBXConst_SNoRecordsAffected 64577 +#define IBXConst_SNoTableName 64578 +#define IBXConst_SCannotCreatePrimaryIndex 64579 +#define IBXConst_SCannotDropSystemIndex 64580 +#define IBXConst_STableNameMismatch 64581 +#define IBXConst_SIndexFieldMissing 64582 +#define IBXConst_SInvalidCancellation 64583 +#define IBXConst_SInvalidEvent 64584 +#define IBXConst_SMaximumEvents 64585 +#define IBXConst_SNoEventsRegistered 64586 +#define IBXConst_SInvalidQueueing 64587 +#define IBXConst_SInvalidRegistration 64588 +#define IBXConst_SInvalidBatchMove 64589 +#define IBXConst_SSQLDialectInvalid 64590 +#define IBXConst_SSPBConstantNotSupported 64591 +#define IBXConst_SDataSetUniDirectional 64592 +#define IBXConst_SCannotCreateSharedResource 64593 +#define IBXConst_SWindowsAPIError 64594 +#define IBXConst_SColumnListsDontMatch 64595 +#define IBXConst_SColumnTypesDontMatch 64596 +#define IBXConst_SCantEndSharedTransaction 64597 +#define IBXConst_SFieldUnsupportedType 64598 +#define IBXConst_SCircularDataLink 64599 +#define IBXConst_SEmptySQLStatement 64600 +#define IBXConst_SIsASelectStatement 64601 +#define IBXConst_SRequiredParamNotSet 64602 +#define IBXConst_SNoStoredProcName 64603 +#define IBXConst_SIsAExecuteProcedure 64604 +#define IBXConst_SUpdateFailed 64605 +#define IBXConst_SNotCachedUpdates 64606 +#define IBXConst_SNotLiveRequest 64607 +#define IBXConst_SBlobCannotBeWritten 64608 +#define IBXConst_SEmptyQuery 64609 +#define IBXConst_SCannotOpenNonSQLSelect 64610 +#define IBXConst_SNoFieldAccess 64611 +#define IBXConst_SFieldReadOnly 64612 +#define IBXConst_SFieldNotFound 64613 +#define IBXConst_SNotEditing 64614 +#define IBXConst_SCannotInsert 64615 +#define IBXConst_SCannotPost 64616 +#define IBXConst_SCannotUpdate 64617 +#define IBXConst_SCannotDelete 64618 +#define IBXConst_SCannotRefresh 64619 +#define IBXConst_SBufferNotSet 64620 +#define IBXConst_SCircularReference 64621 +#define IBXConst_SSQLParseError 64622 +#define IBXConst_SUserAbort 64623 +#define IBXConst_STransactionNotAssigned 64624 +#define IBXConst_SXSQLDAIndexOutOfRange 64625 +#define IBXConst_SXSQLDANameDoesNotExist 64626 +#define IBXConst_SEOF 64627 +#define IBXConst_SBOF 64628 +#define IBXConst_SInvalidStatementHandle 64629 +#define IBXConst_SSQLOpen 64630 +#define IBXConst_SSQLClosed 64631 +#define IBXConst_SDatasetOpen 64632 +#define IBXConst_SDatasetClosed 64633 +#define IBXConst_SUnknownSQLDataType 64634 +#define IBXConst_SInvalidColumnIndex 64635 +#define IBXConst_SInvalidParamColumnIndex 64636 +#define IBXConst_SInvalidDataConversion 64637 +#define IBXConst_SColumnIsNotNullable 64638 +#define IBXConst_SBlobCannotBeRead 64639 +#define IBXConst_SCannotSetTransaction 64640 +#define IBXConst_SOperationCancelled 64641 +#define IBXConst_SDPBConstantNotSupported 64642 +#define IBXConst_SDPBConstantUnknown 64643 +#define IBXConst_STPBConstantNotSupported 64644 +#define IBXConst_STPBConstantUnknown 64645 +#define IBXConst_SDatabaseClosed 64646 +#define IBXConst_SDatabaseOpen 64647 +#define IBXConst_SDatabaseNameMissing 64648 +#define IBXConst_SNotInTransaction 64649 +#define IBXConst_SInTransaction 64650 +#define IBXConst_STimeoutNegative 64651 +#define IBXConst_SNoDatabasesInTransaction 64652 +#define IBXConst_SUpdateWrongDB 64653 +#define IBXConst_SUpdateWrongTR 64654 +#define IBXConst_SDatabaseNotAssigned 64655 +#define ADOConst_SUsupportedFieldType 64656 +#define ADOConst_SConnectionRequired 64657 +#define ADOConst_SCantRequery 64658 +#define ADOConst_SNoFilterOptions 64659 +#define ADOConst_SRecordsetNotOpen 64660 +#define ADOConst_sNameAttr 64661 +#define ADOConst_sValueAttr 64662 +#define IBXConst_SUnknownError 64663 +#define IBXConst_SInterBaseMissing 64664 +#define IBXConst_SInterBaseInstallMissing 64665 +#define IBXConst_SIB60feature 64666 +#define IBXConst_SNotSupported 64667 +#define IBXConst_SNotPermitted 64668 +#define IBXConst_SFileAccessError 64669 +#define IBXConst_SConnectionTimeout 64670 +#define IBXConst_SCannotSetDatabase 64671 +#define SqlConst_SNOTIMPLEMENTED 64672 +#define SqlConst_SDRIVERINCOMPATIBLE 64673 +#define SqlConst_SNODATA 64674 +#define SqlConst_SSQLERROR 64675 +#define SqlConst_SDBXError 64676 +#define SqlConst_SSQLServerError 64677 +#define SqlConst_SDriverNotInConfigFile 64678 +#define SqlConst_SObjectTypenameRequired 64679 +#define SqlConst_SCannotCreateFile 64680 +#define ADOConst_SMissingConnection 64681 +#define ADOConst_SNoDetailFilter 64682 +#define ADOConst_SBookmarksRequired 64683 +#define ADOConst_SMissingCommandText 64684 +#define ADOConst_SNoResultSet 64685 +#define ADOConst_SADOCreateError 64686 +#define ADOConst_SEventsNotSupported 64687 +#define SqlConst_SSQLPARAMNOTSET 64688 +#define SqlConst_SINVALIDUSRPASS 64689 +#define SqlConst_SINVALIDPRECISION 64690 +#define SqlConst_SINVALIDLEN 64691 +#define SqlConst_SINVALIDXISOLEVEL 64692 +#define SqlConst_SINVALIDTXNID 64693 +#define SqlConst_SDUPLICATETXNID 64694 +#define SqlConst_SDRIVERRESTRICTED 64695 +#define SqlConst_SLOCALTRANSACTIVE 64696 +#define SqlConst_SMULTIPLETRANSNOTENABLED 64697 +#define SqlConst_SCONNECTIONFAILED 64698 +#define SqlConst_SDRIVERINITFAILED 64699 +#define SqlConst_SOPTLOCKFAILED 64700 +#define SqlConst_SINVALIDREF 64701 +#define SqlConst_SNOTABLE 64702 +#define SqlConst_SMISSINGPARAMINSQL 64703 +#define SqlConst_SNoCursor 64704 +#define SqlConst_SErrorMappingError 64705 +#define SqlConst_SStoredProcsNotSupported 64706 +#define SqlConst_SPackagesNotSupported 64707 +#define SqlConst_SDBXUNKNOWNERROR 64708 +#define SqlConst_SNOERROR 64709 +#define SqlConst_SWARNING 64710 +#define SqlConst_SNOMEMORY 64711 +#define SqlConst_SINVALIDFLDTYPE 64712 +#define SqlConst_SINVALIDHNDL 64713 +#define SqlConst_SNOTSUPPORTED 64714 +#define SqlConst_SINVALIDTIME 64715 +#define SqlConst_SINVALIDXLATION 64716 +#define SqlConst_SOUTOFRANGE 64717 +#define SqlConst_SINVALIDPARAM 64718 +#define SqlConst_SEOF 64719 +#define SqlConst_SMissingSQLConnection 64720 +#define SqlConst_SConnectionNameMissing 64721 +#define SqlConst_SEmptySQLStatement 64722 +#define SqlConst_SNoParameterValue 64723 +#define SqlConst_SNoSqlStatement 64724 +#define SqlConst_SMissingDataBaseName 64725 +#define SqlConst_SMissingDriverName 64726 +#define SqlConst_SPrepareError 64727 +#define SqlConst_SObjectNameError 64728 +#define SqlConst_SSQLDataSetOpen 64729 +#define SqlConst_SNoActiveTrans 64730 +#define SqlConst_SActiveTrans 64731 +#define SqlConst_SDllLoadError 64732 +#define SqlConst_SDllProcLoadError 64733 +#define SqlConst_SMissingDLLName 64734 +#define SqlConst_SMissingDriverRegFile 64735 +#define uDARes_err_InvalidDriverReference 64736 +#define uDARes_err_CannotFindStatement 64737 +#define uDARes_err_CannotFindDefaultItem 64738 +#define uDARes_err_PoolIsNotEmpty 64739 +#define uDARes_err_MaxPoolSizeReached 64740 +#define uDARes_err_LAMEDataset 64741 +#define uDARes_err_DARDMInvalidSchema 64742 +#define uDARes_err_DARDMUnassignedAdapter 64743 +#define uDARes_err_DARDMConnectionIsNotAssigned 64744 +#define uDARes_err_DARDMCannotFindProxessorForDelta 64745 +#define uDARes_err_NeedShareMem 64746 +#define uDARes_err_ExecuteSQLCommandNotAllowed 64747 +#define SqlConst_SLoginError 64748 +#define SqlConst_SMonitorActive 64749 +#define SqlConst_SDatabaseOpen 64750 +#define SqlConst_SDatabaseClosed 64751 +#define DBConsts_SInvalidSqlTimeStamp 64752 +#define uDARes_err_ChangeLogAlreadyStarted 64753 +#define uDARes_err_NotAttachedToDataTable 64754 +#define uDARes_err_DriverProcAlreadyRegistered 64755 +#define uDARes_err_DriverManagerAlreadyCreated 64756 +#define uDARes_err_DriverManagerNotAssigned 64757 +#define uDARes_err_FieldTypeNotSupported 64758 +#define uDARes_err_InvalidDataset 64759 +#define uDARes_err_CannotFindItem 64760 +#define uDARes_err_DriverAlreadyLoaded 64761 +#define uDARes_err_InvalidDLL 64762 +#define uDARes_err_UnknownDriver 64763 +#define uDARes_err_UnknownParameter 64764 +#define uDARes_err_FieldIsNotBound 64765 +#define uDARes_err_CannotFindField 64766 +#define uDARes_err_LoadPackageFailed 64767 +#define DBConsts_STextTrue 64768 +#define DBConsts_SParameterNotFound 64769 +#define DBConsts_SInvalidVersion 64770 +#define DBConsts_SBadFieldType 64771 +#define DBConsts_SAggActive 64772 +#define DBConsts_SProviderSQLNotSupported 64773 +#define DBConsts_SProviderExecuteNotSupported 64774 +#define DBConsts_SExprNoAggOnCalcs 64775 +#define DBConsts_SDataSetUnidirectional 64776 +#define DBConsts_SUnassignedVar 64777 +#define DBConsts_SRecordNotFound 64778 +#define DBConsts_SFileNameBlank 64779 +#define DBConsts_SBcdOverflow 64780 +#define DBConsts_SInvalidBcdValue 64781 +#define DBConsts_SInvalidFormatType 64782 +#define DBConsts_SCouldNotParseTimeStamp 64783 +#define DBConsts_SExprNoRParenOrComma 64784 +#define DBConsts_SExprExpected 64785 +#define DBConsts_SExprBadField 64786 +#define DBConsts_SExprBadNullTest 64787 +#define DBConsts_SExprRangeError 64788 +#define DBConsts_SExprIncorrect 64789 +#define DBConsts_SExprNothing 64790 +#define DBConsts_SExprTypeMis 64791 +#define DBConsts_SExprBadScope 64792 +#define DBConsts_SExprNoArith 64793 +#define DBConsts_SExprNotAgg 64794 +#define DBConsts_SExprBadConst 64795 +#define DBConsts_SExprNoAggFilter 64796 +#define DBConsts_SExprEmptyInList 64797 +#define DBConsts_SInvalidKeywordUse 64798 +#define DBConsts_STextFalse 64799 +#define DBConsts_SCircularDataLink 64800 +#define DBConsts_SLookupInfoError 64801 +#define DBConsts_SDataSourceChange 64802 +#define DBConsts_SNoNestedMasterSource 64803 +#define DBConsts_SDataSetOpen 64804 +#define DBConsts_SNotEditing 64805 +#define DBConsts_SDataSetClosed 64806 +#define DBConsts_SDataSetEmpty 64807 +#define DBConsts_SDataSetReadOnly 64808 +#define DBConsts_SNestedDataSetClass 64809 +#define DBConsts_SExprTermination 64810 +#define DBConsts_SExprNameError 64811 +#define DBConsts_SExprStringError 64812 +#define DBConsts_SExprInvalidChar 64813 +#define DBConsts_SExprNoLParen 64814 +#define DBConsts_SExprNoRParen 64815 +#define DBConsts_SInvalidFloatValue 64816 +#define DBConsts_SFieldTypeMismatch 64817 +#define DBConsts_SFieldSizeMismatch 64818 +#define DBConsts_SInvalidVarByteArray 64819 +#define DBConsts_SFieldOutOfRange 64820 +#define DBConsts_SFieldRequired 64821 +#define DBConsts_SDataSetMissing 64822 +#define DBConsts_SInvalidCalcType 64823 +#define DBConsts_SFieldReadOnly 64824 +#define DBConsts_SFieldIndexError 64825 +#define DBConsts_SNoFieldIndexes 64826 +#define DBConsts_SNotIndexField 64827 +#define DBConsts_SIndexFieldMissing 64828 +#define DBConsts_SDuplicateIndexName 64829 +#define DBConsts_SNoIndexForFields 64830 +#define DBConsts_SIndexNotFound 64831 +#define IdResourceStrings_RSSocksServerAddressError 64832 +#define IdResourceStrings_RSUnevenSizeInDecodeStream 64833 +#define IdResourceStrings_RSUnevenSizeInEncodeStream 64834 +#define IdResourceStrings_RSThreadTerminateAndWaitFor 64835 +#define DBConsts_SInvalidFieldSize 64836 +#define DBConsts_SInvalidFieldKind 64837 +#define DBConsts_SUnknownFieldType 64838 +#define DBConsts_SFieldNameMissing 64839 +#define DBConsts_SDuplicateFieldName 64840 +#define DBConsts_SFieldNotFound 64841 +#define DBConsts_SFieldAccessError 64842 +#define DBConsts_SFieldValueError 64843 +#define DBConsts_SFieldRangeError 64844 +#define DBConsts_SBcdFieldRangeError 64845 +#define DBConsts_SInvalidIntegerValue 64846 +#define DBConsts_SInvalidBoolValue 64847 +#define IdResourceStrings_RSStackENOTEMPTY 64848 +#define IdResourceStrings_RSStackHOST_NOT_FOUND 64849 +#define IdResourceStrings_RSSocksRequestFailed 64850 +#define IdResourceStrings_RSSocksRequestServerFailed 64851 +#define IdResourceStrings_RSSocksRequestIdentFailed 64852 +#define IdResourceStrings_RSSocksUnknownError 64853 +#define IdResourceStrings_RSSocksServerRespondError 64854 +#define IdResourceStrings_RSSocksAuthMethodError 64855 +#define IdResourceStrings_RSSocksAuthError 64856 +#define IdResourceStrings_RSSocksServerGeneralError 64857 +#define IdResourceStrings_RSSocksServerPermissionError 64858 +#define IdResourceStrings_RSSocksServerNetUnreachableError 64859 +#define IdResourceStrings_RSSocksServerHostUnreachableError 64860 +#define IdResourceStrings_RSSocksServerConnectionRefusedError 64861 +#define IdResourceStrings_RSSocksServerTTLExpiredError 64862 +#define IdResourceStrings_RSSocksServerCommandError 64863 +#define IdResourceStrings_RSStackENETDOWN 64864 +#define IdResourceStrings_RSStackENETUNREACH 64865 +#define IdResourceStrings_RSStackENETRESET 64866 +#define IdResourceStrings_RSStackECONNABORTED 64867 +#define IdResourceStrings_RSStackECONNRESET 64868 +#define IdResourceStrings_RSStackENOBUFS 64869 +#define IdResourceStrings_RSStackEISCONN 64870 +#define IdResourceStrings_RSStackENOTCONN 64871 +#define IdResourceStrings_RSStackESHUTDOWN 64872 +#define IdResourceStrings_RSStackETOOMANYREFS 64873 +#define IdResourceStrings_RSStackETIMEDOUT 64874 +#define IdResourceStrings_RSStackECONNREFUSED 64875 +#define IdResourceStrings_RSStackELOOP 64876 +#define IdResourceStrings_RSStackENAMETOOLONG 64877 +#define IdResourceStrings_RSStackEHOSTDOWN 64878 +#define IdResourceStrings_RSStackEHOSTUNREACH 64879 +#define IdResourceStrings_RSStackEMFILE 64880 +#define IdResourceStrings_RSStackEWOULDBLOCK 64881 +#define IdResourceStrings_RSStackEINPROGRESS 64882 +#define IdResourceStrings_RSStackEALREADY 64883 +#define IdResourceStrings_RSStackENOTSOCK 64884 +#define IdResourceStrings_RSStackEDESTADDRREQ 64885 +#define IdResourceStrings_RSStackEMSGSIZE 64886 +#define IdResourceStrings_RSStackEPROTOTYPE 64887 +#define IdResourceStrings_RSStackENOPROTOOPT 64888 +#define IdResourceStrings_RSStackEPROTONOSUPPORT 64889 +#define IdResourceStrings_RSStackESOCKTNOSUPPORT 64890 +#define IdResourceStrings_RSStackEOPNOTSUPP 64891 +#define IdResourceStrings_RSStackEPFNOSUPPORT 64892 +#define IdResourceStrings_RSStackEAFNOSUPPORT 64893 +#define IdResourceStrings_RSStackEADDRINUSE 64894 +#define IdResourceStrings_RSStackEADDRNOTAVAIL 64895 +#define IdResourceStrings_RSHTTPGatewayTimeout 64896 +#define IdResourceStrings_RSHTTPHTTPVersionNotSupported 64897 +#define IdResourceStrings_RSHTTPUnknownResponseCode 64898 +#define IdResourceStrings_RSHTTPHeaderAlreadyWritten 64899 +#define IdResourceStrings_RSHTTPErrorParsingCommand 64900 +#define IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme 64901 +#define IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive 64902 +#define IdResourceStrings_RSHTTPAuthAlreadyRegistered 64903 +#define IdResourceStrings_RSInvalidServiceName 64904 +#define IdResourceStrings_RSStackError 64905 +#define IdResourceStrings_RSStackInvalidIP 64906 +#define IdResourceStrings_RSStackEINTR 64907 +#define IdResourceStrings_RSStackEBADF 64908 +#define IdResourceStrings_RSStackEACCES 64909 +#define IdResourceStrings_RSStackEFAULT 64910 +#define IdResourceStrings_RSStackEINVAL 64911 +#define IdResourceStrings_RSHTTPNotFound 64912 +#define IdResourceStrings_RSHTTPMethodeNotallowed 64913 +#define IdResourceStrings_RSHTTPNotAcceptable 64914 +#define IdResourceStrings_RSHTTPProxyAuthenticationRequired 64915 +#define IdResourceStrings_RSHTTPRequestTimeout 64916 +#define IdResourceStrings_RSHTTPConflict 64917 +#define IdResourceStrings_RSHTTPGone 64918 +#define IdResourceStrings_RSHTTPLengthRequired 64919 +#define IdResourceStrings_RSHTTPPreconditionFailed 64920 +#define IdResourceStrings_RSHTTPRequestEntityToLong 64921 +#define IdResourceStrings_RSHTTPRequestURITooLong 64922 +#define IdResourceStrings_RSHTTPUnsupportedMediaType 64923 +#define IdResourceStrings_RSHTTPInternalServerError 64924 +#define IdResourceStrings_RSHTTPNotImplemented 64925 +#define IdResourceStrings_RSHTTPBadGateway 64926 +#define IdResourceStrings_RSHTTPServiceUnavailable 64927 +#define IdResourceStrings_RSHTTPContinue 64928 +#define IdResourceStrings_RSHTTPOK 64929 +#define IdResourceStrings_RSHTTPCreated 64930 +#define IdResourceStrings_RSHTTPAccepted 64931 +#define IdResourceStrings_RSHTTPNonAuthoritativeInformation 64932 +#define IdResourceStrings_RSHTTPNoContent 64933 +#define IdResourceStrings_RSHTTPResetContent 64934 +#define IdResourceStrings_RSHTTPPartialContent 64935 +#define IdResourceStrings_RSHTTPMovedPermanently 64936 +#define IdResourceStrings_RSHTTPMovedTemporarily 64937 +#define IdResourceStrings_RSHTTPSeeOther 64938 +#define IdResourceStrings_RSHTTPNotModified 64939 +#define IdResourceStrings_RSHTTPUseProxy 64940 +#define IdResourceStrings_RSHTTPBadRequest 64941 +#define IdResourceStrings_RSHTTPUnauthorized 64942 +#define IdResourceStrings_RSHTTPForbidden 64943 +#define IdResourceStrings_RSInvalidPortRange 64944 +#define IdResourceStrings_RSReadTimeout 64945 +#define IdResourceStrings_RSReadLnMaxLineLengthExceeded 64946 +#define IdResourceStrings_RSNoCommandHandlerFound 64947 +#define IdResourceStrings_RSWS2CallError 64948 +#define IdResourceStrings_RSWS2LoadError 64949 +#define IdResourceStrings_RSMIMEExtensionEmpty 64950 +#define IdResourceStrings_RSMIMEMIMETypeEmpty 64951 +#define IdResourceStrings_RSMIMEMIMEExtAlreadyExists 64952 +#define IdResourceStrings_RSStatusResolving 64953 +#define IdResourceStrings_RSStatusConnecting 64954 +#define IdResourceStrings_RSStatusConnected 64955 +#define IdResourceStrings_RSStatusDisconnecting 64956 +#define IdResourceStrings_RSStatusDisconnected 64957 +#define IdResourceStrings_RSStatusText 64958 +#define IdResourceStrings_RSConnectTimeout 64959 +#define IdResourceStrings_RSCannotAllocateSocket 64960 +#define IdResourceStrings_RSConnectionClosedGracefully 64961 +#define IdResourceStrings_RSCouldNotBindSocket 64962 +#define IdResourceStrings_RSFailedTimeZoneInfo 64963 +#define IdResourceStrings_RSNotEnoughDataInBuffer 64964 +#define IdResourceStrings_RSWinsockInitializationError 64965 +#define IdResourceStrings_RSSetSizeExceeded 64966 +#define IdResourceStrings_RSThreadClassNotSpecified 64967 +#define IdResourceStrings_RSFileNotFound 64968 +#define IdResourceStrings_RSOnlyOneAntiFreeze 64969 +#define IdResourceStrings_RSNotConnected 64970 +#define IdResourceStrings_RSObjectTypeNotSupported 64971 +#define IdResourceStrings_RSTerminateThreadTimeout 64972 +#define IdResourceStrings_RSNoExecuteSpecified 64973 +#define IdResourceStrings_RSIdNoDataToRead 64974 +#define IdResourceStrings_RSCanNotBindRange 64975 +#define JclResources_RsIntelCacheDescr7C 64976 +#define JclResources_RsIntelCacheDescr7D 64977 +#define JclResources_RsIntelCacheDescr7F 64978 +#define JclResources_RsIntelCacheDescr82 64979 +#define JclResources_RsIntelCacheDescr83 64980 +#define JclResources_RsIntelCacheDescr84 64981 +#define JclResources_RsIntelCacheDescr85 64982 +#define JclResources_RsIntelCacheDescr86 64983 +#define JclResources_RsIntelCacheDescr87 64984 +#define JclResources_RsIntelCacheDescrB0 64985 +#define JclResources_RsIntelCacheDescrB3 64986 +#define JclResources_RsIntelCacheDescrF0 64987 +#define JclResources_RsIntelCacheDescrF1 64988 +#define JConsts_sChangeJPGSize 64989 +#define JConsts_sJPEGError 64990 +#define JConsts_sJPEGImageFile 64991 +#define JclResources_RsIntelCacheDescr51 64992 +#define JclResources_RsIntelCacheDescr52 64993 +#define JclResources_RsIntelCacheDescr5B 64994 +#define JclResources_RsIntelCacheDescr5C 64995 +#define JclResources_RsIntelCacheDescr5D 64996 +#define JclResources_RsIntelCacheDescr60 64997 +#define JclResources_RsIntelCacheDescr66 64998 +#define JclResources_RsIntelCacheDescr67 64999 +#define JclResources_RsIntelCacheDescr68 65000 +#define JclResources_RsIntelCacheDescr70 65001 +#define JclResources_RsIntelCacheDescr71 65002 +#define JclResources_RsIntelCacheDescr72 65003 +#define JclResources_RsIntelCacheDescr78 65004 +#define JclResources_RsIntelCacheDescr79 65005 +#define JclResources_RsIntelCacheDescr7A 65006 +#define JclResources_RsIntelCacheDescr7B 65007 +#define JclResources_RsIntelCacheDescr08 65008 +#define JclResources_RsIntelCacheDescr0A 65009 +#define JclResources_RsIntelCacheDescr0C 65010 +#define JclResources_RsIntelCacheDescr22 65011 +#define JclResources_RsIntelCacheDescr23 65012 +#define JclResources_RsIntelCacheDescr25 65013 +#define JclResources_RsIntelCacheDescr29 65014 +#define JclResources_RsIntelCacheDescr2C 65015 +#define JclResources_RsIntelCacheDescr30 65016 +#define JclResources_RsIntelCacheDescr40 65017 +#define JclResources_RsIntelCacheDescr41 65018 +#define JclResources_RsIntelCacheDescr42 65019 +#define JclResources_RsIntelCacheDescr43 65020 +#define JclResources_RsIntelCacheDescr44 65021 +#define JclResources_RsIntelCacheDescr45 65022 +#define JclResources_RsIntelCacheDescr50 65023 +#define JclResources_RsRTTIMethodKind 65024 +#define JclResources_RsRTTIParamCount 65025 +#define JclResources_RsRTTIReturnType 65026 +#define JclResources_RsRTTIMaxLen 65027 +#define JclResources_RsRTTIElSize 65028 +#define JclResources_RsRTTIElType 65029 +#define JclResources_RsRTTIElNeedCleanup 65030 +#define JclResources_RsRTTIVarType 65031 +#define JclResources_RsDeclarationFormat 65032 +#define JclResources_RsBlankSearchString 65033 +#define JclResources_RsIntelCacheDescr00 65034 +#define JclResources_RsIntelCacheDescr01 65035 +#define JclResources_RsIntelCacheDescr02 65036 +#define JclResources_RsIntelCacheDescr03 65037 +#define JclResources_RsIntelCacheDescr04 65038 +#define JclResources_RsIntelCacheDescr06 65039 +#define JclResources_RsRTTIDefault 65040 +#define JclResources_RsRTTIName 65041 +#define JclResources_RsRTTIType 65042 +#define JclResources_RsRTTIFlags 65043 +#define JclResources_RsRTTIGUID 65044 +#define JclResources_RsRTTITypeKind 65045 +#define JclResources_RsRTTIOrdinalType 65046 +#define JclResources_RsRTTIMinValue 65047 +#define JclResources_RsRTTIMaxValue 65048 +#define JclResources_RsRTTINameList 65049 +#define JclResources_RsRTTIClassName 65050 +#define JclResources_RsRTTIParent 65051 +#define JclResources_RsRTTIPropCount 65052 +#define JclResources_RsRTTIUnitName 65053 +#define JclResources_RsRTTIBasedOn 65054 +#define JclResources_RsRTTIFloatType 65055 +#define JclResources_RsRTTIVar 65056 +#define JclResources_RsRTTIConst 65057 +#define JclResources_RsRTTIArrayOf 65058 +#define JclResources_RsRTTIOut 65059 +#define JclResources_RsRTTIOrdinal 65060 +#define JclResources_RsRTTITrue 65061 +#define JclResources_RsRTTIFalse 65062 +#define JclResources_RsRTTITypeError 65063 +#define JclResources_RsRTTITypeInfoAt 65064 +#define JclResources_RsRTTIPropRead 65065 +#define JclResources_RsRTTIPropWrite 65066 +#define JclResources_RsRTTIPropStored 65067 +#define JclResources_RsRTTIField 65068 +#define JclResources_RsRTTIStaticMethod 65069 +#define JclResources_RsRTTIVirtualMethod 65070 +#define JclResources_RsRTTIIndex 65071 +#define JvResources_RsCl3DLight 65072 +#define JvResources_RsClInfoText 65073 +#define JvResources_RsClInfoBk 65074 +#define JvResources_RsGradientActiveCaption 65075 +#define JvResources_RsGradientInactiveCaption 65076 +#define JvResources_RsHotLight 65077 +#define JvResources_RsMenuBar 65078 +#define JvResources_RsMenuHighlight 65079 +#define JclResources_RsFileUtilsNoVersionInfo 65080 +#define JclResources_RsUnableToOpenKeyRead 65081 +#define JclResources_RsUnableToOpenKeyWrite 65082 +#define JclResources_RsUnableToAccessValue 65083 +#define JclResources_RsWrongDataType 65084 +#define JclResources_RsInconsistentPath 65085 +#define JclResources_RsRTTIValueOutOfRange 65086 +#define JclResources_RsRTTIUnknownIdentifier 65087 +#define JvResources_RsClWindowFrame 65088 +#define JvResources_RsClMenuText 65089 +#define JvResources_RsClWindowText 65090 +#define JvResources_RsClCaptionText 65091 +#define JvResources_RsClActiveBorder 65092 +#define JvResources_RsClInactiveBorder 65093 +#define JvResources_RsClAppWorkSpace 65094 +#define JvResources_RsClHighlight 65095 +#define JvResources_RsClHighlightText 65096 +#define JvResources_RsClBtnFace 65097 +#define JvResources_RsClBtnShadow 65098 +#define JvResources_RsClGrayText 65099 +#define JvResources_RsClBtnText 65100 +#define JvResources_RsClInactiveCaptionText 65101 +#define JvResources_RsClBtnHighlight 65102 +#define JvResources_RsCl3DDkShadow 65103 +#define JvResources_RsClTurquoise 65104 +#define JvResources_RsClPlum 65105 +#define JvResources_RsClGray25 65106 +#define JvResources_RsClRose 65107 +#define JvResources_RsClTan 65108 +#define JvResources_RsClLightYellow 65109 +#define JvResources_RsClLightGreen 65110 +#define JvResources_RsClLightTurquoise 65111 +#define JvResources_RsClPaleBlue 65112 +#define JvResources_RsClLavender 65113 +#define JvResources_RsClScrollBar 65114 +#define JvResources_RsClBackground 65115 +#define JvResources_RsClActiveCaption 65116 +#define JvResources_RsClInactiveCaption 65117 +#define JvResources_RsClMenu 65118 +#define JvResources_RsClWindow 65119 +#define JvResources_RsClDarkBlue 65120 +#define JvResources_RsClIndigo 65121 +#define JvResources_RsClGray80 65122 +#define JvResources_RsClDarkRed 65123 +#define JvResources_RsClOrange 65124 +#define JvResources_RsClDarkYellow 65125 +#define JvResources_RsClBlueGray 65126 +#define JvResources_RsClGray50 65127 +#define JvResources_RsClLightOrange 65128 +#define JvResources_RsClSeaGreen 65129 +#define JvResources_RsClLightBlue 65130 +#define JvResources_RsClViolet 65131 +#define JvResources_RsClGray40 65132 +#define JvResources_RsClPink 65133 +#define JvResources_RsClGold 65134 +#define JvResources_RsClBrightGreen 65135 +#define JvResources_RsClSilver 65136 +#define JvResources_RsClRed 65137 +#define JvResources_RsClLime 65138 +#define JvResources_RsClYellow 65139 +#define JvResources_RsClBlue 65140 +#define JvResources_RsClFuchsia 65141 +#define JvResources_RsClAqua 65142 +#define JvResources_RsClWhite 65143 +#define JvResources_RsClMoneyGreen 65144 +#define JvResources_RsClSkyBlue 65145 +#define JvResources_RsClCream 65146 +#define JvResources_RsClMedGray 65147 +#define JvResources_RsClBrown 65148 +#define JvResources_RsClOliveGreen 65149 +#define JvResources_RsClDarkGreen 65150 +#define JvResources_RsClDarkTeal 65151 +#define JvResources_RsEUnrecognizedGIFExt 65152 +#define JvResources_RsEWrongGIFColors 65153 +#define JvResources_RsEBadGIFCodeSize 65154 +#define JvResources_RsEGIFDecodeError 65155 +#define JvResources_RsEGIFEncodeError 65156 +#define JvResources_RsEGIFVersion 65157 +#define JvResources_RsEPixelFormatNotImplemented 65158 +#define JvResources_RsEBitCountNotImplemented 65159 +#define JvResources_RsClBlack 65160 +#define JvResources_RsClMaroon 65161 +#define JvResources_RsClGreen 65162 +#define JvResources_RsClOlive 65163 +#define JvResources_RsClNavy 65164 +#define JvResources_RsClPurple 65165 +#define JvResources_RsClTeal 65166 +#define JvResources_RsClGray 65167 +#define ComStrs_sFailSetCalMaxSelRange 65168 +#define ComStrs_sFailSetCalMinMaxRange 65169 +#define ComStrs_sFailsetCalSelRange 65170 +#define JvResources_RsAniExtension 65171 +#define JvResources_RsAniFilterName 65172 +#define JvResources_RsRootValueReplaceFmt 65173 +#define JvResources_RsEUnableToCreateKey 65174 +#define JvResources_RsEEnumeratingRegistry 65175 +#define JvResources_RsEInvalidType 65176 +#define JvResources_RsEUnknownBaseType 65177 +#define JvResources_RsEInvalidPath 65178 +#define JvResources_RsENotAUniqueRootPath 65179 +#define JvResources_RsECircularReferenceOfStorages 65180 +#define JvResources_RsGIFImage 65181 +#define JvResources_RsEChangeGIFSize 65182 +#define JvResources_RsENoGIFData 65183 +#define ComStrs_sTabFailRetrieve 65184 +#define ComStrs_sTabFailGetObject 65185 +#define ComStrs_sTabFailSet 65186 +#define ComStrs_sTabFailSetObject 65187 +#define ComStrs_sTabMustBeMultiLine 65188 +#define ComStrs_sInvalidIndex 65189 +#define ComStrs_sInsertError 65190 +#define ComStrs_sRichEditInsertError 65191 +#define ComStrs_sRichEditLoadFail 65192 +#define ComStrs_sRichEditSaveFail 65193 +#define ComStrs_sUDAssociated 65194 +#define ComStrs_sInvalidComCtl32 65195 +#define ComStrs_sDateTimeMax 65196 +#define ComStrs_sDateTimeMin 65197 +#define ComStrs_sNeedAllowNone 65198 +#define ComStrs_sFailSetCalDateTime 65199 +#define ComConst_SVarNotObject 65200 +#define ComConst_STooManyParams 65201 +#define uRODECConst_sProtectionCircular 65202 +#define uRODECConst_sStringFormatExists 65203 +#define uRODECConst_sInvalidStringFormat 65204 +#define uRODECConst_sInvalidFormatString 65205 +#define uRODECConst_sFMT_COPY 65206 +#define uRODECConst_sFMT_HEX 65207 +#define uRODECConst_sFMT_HEXL 65208 +#define uRODECConst_sFMT_MIME64 65209 +#define uRODECConst_sFMT_UU 65210 +#define uRODECConst_sFMT_XX 65211 +#define uRODECConst_sInvalidKeySize 65212 +#define uRODECConst_sNotInitialized 65213 +#define ComStrs_sTabFailClear 65214 +#define ComStrs_sTabFailDelete 65215 +#define uRORes_err_UnknownClassInStream 65216 +#define uRORes_err_UnexpectedClassInStream 65217 +#define uRORes_err_SessionNotFound 65218 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65219 +#define uRORes_err_TooManySessions 65220 +#define uRORes_err_DOMElementIsNIL 65221 +#define uRORes_err_CannotLoadXMLDocument 65222 +#define uRORes_err_ErrorCreatingMsXmlDoc 65223 +#define uRORes_err_NoXMLParsersAvailable 65224 +#define uRORes_err_IDispatchMarshalingNotSupported 65225 +#define uRORes_err_UnsupportedVariantType 65226 +#define uRORes_err_VariantIsNotArray 65227 +#define uRORes_err_InvalidVarArrayDimCount 65228 +#define uRORes_err_MessageNotAssigned 65229 +#define ComConst_SOleError 65230 +#define ComConst_SNoMethod 65231 +#define uRORes_err_UnspecifiedInterface 65232 +#define uRORes_err_UnspecifiedMessage 65233 +#define uRORes_err_UnknownMethod 65234 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65235 +#define uRORes_err_TypeNotSupported 65236 +#define uRORes_err_ClassFactoryNotFound 65237 +#define uRORes_err_IROMessageNotSupported 65238 +#define uRORes_err_ClassAlreadyRegistered 65239 +#define uRORes_err_UnknownProxyInterface 65240 +#define uRORes_err_DispatcherAlreadyAssigned 65241 +#define uRORes_err_CannotFindMessageDispatcher 65242 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65243 +#define uRORes_err_UnhandledException 65244 +#define uRORes_err_ChannelBusy 65245 +#define uRORes_err_ArrayIndexOutOfBounds 65246 +#define uRORes_err_InvalidHeader 65247 +#define uRORes_str_InvalidClassTypeInStream 65248 +#define uRORes_err_UnexpectedEndOfStream 65249 +#define uRORes_err_RodlDuplicateName 65250 +#define uRORes_err_RodlNoDataTypeSpecified 65251 +#define uRORes_err_RodlNoEnumValues 65252 +#define uRORes_err_RodlNoStructElementsDefined 65253 +#define uRORes_err_RodlNoOperationsDefined 65254 +#define uRORes_err_RodlUsedFileDoesNotExist 65255 +#define uRORes_err_RodlInvalidDataType 65256 +#define uRORes_err_RodlStructCannotBeNested 65257 +#define uRORes_err_RodlInvalidAncestorType 65258 +#define uRORes_str_ExceptionOnServer 65259 +#define uRORes_str_ExceptionReraisedFromServer 65260 +#define uRORes_err_AssignError 65261 +#define uRORes_err_InvalidRequestStream 65262 +#define uRORes_err_NILMessage 65263 +#define Consts_SDockZoneVersionConflict 65264 +#define Consts_SMultiSelectRequired 65265 +#define Consts_SSeparator 65266 +#define Consts_SErrorSettingCount 65267 +#define Consts_SListBoxMustBeVirtual 65268 +#define Consts_SANSIEncoding 65269 +#define Consts_SASCIIEncoding 65270 +#define Consts_SUnicodeEncoding 65271 +#define Consts_SBigEndianEncoding 65272 +#define Consts_SUTF8Encoding 65273 +#define Consts_SUTF7Encoding 65274 +#define uRORes_err_InvalidIndex 65275 +#define uRORes_err_InvalidType 65276 +#define uRORes_err_InvalidStream 65277 +#define uRORes_err_InvalidParamFlag 65278 +#define uRORes_err_InvalidStringLength 65279 +#define Consts_SmkcCtrl 65280 +#define Consts_SmkcAlt 65281 +#define Consts_srNone 65282 +#define Consts_SOutOfRange 65283 +#define Consts_SInsertLineError 65284 +#define Consts_SInvalidClipFmt 65285 +#define Consts_SIconToClipboard 65286 +#define Consts_SCannotOpenClipboard 65287 +#define Consts_SInvalidMemoSize 65288 +#define Consts_SInvalidPrinterOp 65289 +#define Consts_SNoDefaultPrinter 65290 +#define Consts_SDuplicateMenus 65291 +#define Consts_SDockedCtlNeedsName 65292 +#define Consts_SDockTreeRemoveError 65293 +#define Consts_SDockZoneNotFound 65294 +#define Consts_SDockZoneHasNoCtl 65295 +#define Consts_SmkcBkSp 65296 +#define Consts_SmkcTab 65297 +#define Consts_SmkcEsc 65298 +#define Consts_SmkcEnter 65299 +#define Consts_SmkcSpace 65300 +#define Consts_SmkcPgUp 65301 +#define Consts_SmkcPgDn 65302 +#define Consts_SmkcEnd 65303 +#define Consts_SmkcHome 65304 +#define Consts_SmkcLeft 65305 +#define Consts_SmkcUp 65306 +#define Consts_SmkcRight 65307 +#define Consts_SmkcDown 65308 +#define Consts_SmkcIns 65309 +#define Consts_SmkcDel 65310 +#define Consts_SmkcShift 65311 +#define Consts_SMaskEditErr 65312 +#define Consts_SMsgDlgWarning 65313 +#define Consts_SMsgDlgError 65314 +#define Consts_SMsgDlgInformation 65315 +#define Consts_SMsgDlgConfirm 65316 +#define Consts_SMsgDlgYes 65317 +#define Consts_SMsgDlgNo 65318 +#define Consts_SMsgDlgOK 65319 +#define Consts_SMsgDlgCancel 65320 +#define Consts_SMsgDlgHelp 65321 +#define Consts_SMsgDlgAbort 65322 +#define Consts_SMsgDlgRetry 65323 +#define Consts_SMsgDlgIgnore 65324 +#define Consts_SMsgDlgAll 65325 +#define Consts_SMsgDlgNoToAll 65326 +#define Consts_SMsgDlgYesToAll 65327 +#define Consts_SOKButton 65328 +#define Consts_SCancelButton 65329 +#define Consts_SYesButton 65330 +#define Consts_SNoButton 65331 +#define Consts_SHelpButton 65332 +#define Consts_SCloseButton 65333 +#define Consts_SIgnoreButton 65334 +#define Consts_SRetryButton 65335 +#define Consts_SAbortButton 65336 +#define Consts_SAllButton 65337 +#define Consts_SCannotDragForm 65338 +#define Consts_SVMetafiles 65339 +#define Consts_SVEnhMetafiles 65340 +#define Consts_SVIcons 65341 +#define Consts_SVBitmaps 65342 +#define Consts_SMaskErr 65343 +#define Consts_SMDIChildNotVisible 65344 +#define Consts_SVisibleChanged 65345 +#define Consts_SCannotShowModal 65346 +#define Consts_SScrollBarRange 65347 +#define Consts_SPropertyOutOfRange 65348 +#define Consts_SMenuIndexError 65349 +#define Consts_SMenuReinserted 65350 +#define Consts_SMenuNotFound 65351 +#define Consts_SNoTimers 65352 +#define Consts_SNotPrinting 65353 +#define Consts_SPrinting 65354 +#define Consts_SInvalidPrinter 65355 +#define Consts_SDeviceOnPort 65356 +#define Consts_SGroupIndexTooLow 65357 +#define Consts_SNoMDIForm 65358 +#define Consts_SControlParentSetToSelf 65359 +#define Consts_SChangeIconSize 65360 +#define Consts_SUnknownExtension 65361 +#define Consts_SUnknownClipboardFormat 65362 +#define Consts_SOutOfResources 65363 +#define Consts_SNoCanvasHandle 65364 +#define Consts_SInvalidImageSize 65365 +#define Consts_SInvalidImageList 65366 +#define Consts_SReplaceImage 65367 +#define Consts_SImageIndexError 65368 +#define Consts_SImageReadFail 65369 +#define Consts_SImageWriteFail 65370 +#define Consts_SWindowDCError 65371 +#define Consts_SWindowClass 65372 +#define Consts_SCannotFocus 65373 +#define Consts_SParentRequired 65374 +#define Consts_SParentGivenNotAParent 65375 +#define RTLConsts_SWriteError 65376 +#define RTLConsts_SThreadCreateError 65377 +#define RTLConsts_SThreadError 65378 +#define HelpIntfs_hNoTableOfContents 65379 +#define HelpIntfs_hNothingFound 65380 +#define HelpIntfs_hNoContext 65381 +#define HelpIntfs_hNoContextFound 65382 +#define HelpIntfs_hNoTopics 65383 +#define Consts_SInvalidTabPosition 65384 +#define Consts_SInvalidTabStyle 65385 +#define Consts_SInvalidBitmap 65386 +#define Consts_SInvalidIcon 65387 +#define Consts_SInvalidMetafile 65388 +#define Consts_SInvalidPixelFormat 65389 +#define Consts_SInvalidImage 65390 +#define Consts_SScanLine 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_SOperationAborted 65488 +#define SysConst_SException 65489 +#define SysConst_SExceptTitle 65490 +#define SysConst_SInvalidFormat 65491 +#define SysConst_SArgumentMissing 65492 +#define SysConst_SDispatchError 65493 +#define SysConst_SReadAccess 65494 +#define SysConst_SWriteAccess 65495 +#define SysConst_SFormatTooLong 65496 +#define SysConst_SVarArrayCreate 65497 +#define SysConst_SVarArrayBounds 65498 +#define SysConst_SVarArrayLocked 65499 +#define SysConst_SVarArrayWithHResult 65500 +#define SysConst_SInvalidVarCast 65501 +#define SysConst_SInvalidVarOp 65502 +#define SysConst_SInvalidVarNullOp 65503 +#define SysConst_SDiskFull 65504 +#define SysConst_SInvalidInput 65505 +#define SysConst_SDivByZero 65506 +#define SysConst_SRangeError 65507 +#define SysConst_SIntOverflow 65508 +#define SysConst_SInvalidOp 65509 +#define SysConst_SZeroDivide 65510 +#define SysConst_SOverflow 65511 +#define SysConst_SUnderflow 65512 +#define SysConst_SInvalidPointer 65513 +#define SysConst_SInvalidCast 65514 +#define SysConst_SAccessViolationArg3 65515 +#define SysConst_SAccessViolationNoArg 65516 +#define SysConst_SStackOverflow 65517 +#define SysConst_SControlC 65518 +#define SysConst_SPrivilege 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_STimeEncodeError 65527 +#define SysConst_SDateEncodeError 65528 +#define SysConst_SOutOfMemory 65529 +#define SysConst_SInOutError 65530 +#define SysConst_SFileNotFound 65531 +#define SysConst_SInvalidFilename 65532 +#define SysConst_STooManyOpenFiles 65533 +#define SysConst_SAccessDenied 65534 +#define SysConst_SEndOfFile 65535 +STRINGTABLE +BEGIN + MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" + MidConst_SCannotCreateDataSet, "No fields defined. Cannot create dataset" + MidConst_SNoConnectToBroker, "Connection not allowed to TConnectionBroker" + MidConst_SNoParentConnection, "ParentConnection is not assigned" + MidConst_SInvalidOptParamType, "Value cannot be stored in an optional parameter" + MidConst_SConstraintFailed, "Record or field constraint failed." + MidConst_SField, "Field" + MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\"" + MidConst_SFieldConstFail, "Preparation of field constraint failed with error \"%s\"" + MidConst_SDefExprFail, "Preparation of default expression failed with error \"%s\"" + MidConst_SNoEditsAllowed, "Modifications are not allowed" + MidConst_SNoDeletesAllowed, "Deletes are not allowed" + MidConst_SNoInsertsAllowed, "Inserts are not allowed" + MidConst_SConnectionMissing, "Requires Connection before opening" + MidConst_SNoCircularConnection, "Circular reference to Connection not allowed" + TeeConst_TeeMsg_ShapeGallery2, "123" + TeeConst_TeeMsg_ValuesX, "X" + TeeConst_TeeMsg_ValuesY, "Y" + TeeConst_TeeMsg_ValuesPie, "Pie" + TeeConst_TeeMsg_ValuesBar, "Bar" + TeeConst_TeeMsg_ValuesAngle, "Angle" + TeeConst_TeeMsg_ValuesGanttStart, "Start" + TeeConst_TeeMsg_ValuesGanttEnd, "End" + TeeConst_TeeMsg_ValuesGanttNextTask, "NextTask" + TeeConst_TeeMsg_ValuesBubbleRadius, "Radius" + TeeConst_TeeMsg_ValuesArrowEndX, "EndX" + TeeConst_TeeMsg_ValuesArrowEndY, "EndY" + MidConst_SNoDataProvider, "Missing data provider or data packet" + MidConst_SInvalidDataPacket, "Invalid data packet" + MidConst_SRefreshError, "Must apply updates before refreshing data" + MidConst_SNoCircularReference, "Circular provider references not allowed" + TeeConst_TeeMsg_DefaultFontSize, "8" + TeeConst_TeeMsg_DefaultGalleryFontSize, "8" + TeeConst_TeeMsg_FunctionAdd, "Add" + TeeConst_TeeMsg_FunctionSubtract, "Subtract" + TeeConst_TeeMsg_FunctionMultiply, "Multiply" + TeeConst_TeeMsg_FunctionDivide, "Divide" + TeeConst_TeeMsg_FunctionHigh, "High" + TeeConst_TeeMsg_FunctionLow, "Low" + TeeConst_TeeMsg_FunctionAverage, "Average" + TeeConst_TeeMsg_GalleryShape, "Shape" + TeeConst_TeeMsg_GalleryBubble, "Bubble" + TeeConst_TeeMsg_DefaultFontName, "Arial" + TeeConst_TeeMsg_CheckPointerSize, "Pointer size must be greater than zero" + TeeConst_TeeMsg_FunctionPeriod, "Function Period should be >= 0" + TeeConst_TeeMsg_PieOther, "Other" + TeeConst_TeeMsg_ShapeGallery1, "abc" + TeeConst_TeeMsg_PieSample8, "Chairs" + TeeConst_TeeMsg_GalleryChartName, "TeeGalleryChart" + TeeConst_TeeMsg_GalleryStandard, "Standard" + TeeConst_TeeMsg_GalleryFunctions, "Functions" + TeeConst_TeeMsg_GalleryArrow, "Arrow" + TeeConst_TeeMsg_GalleryGantt, "Gantt" + TeeConst_TeeMsg_GanttSample1, "Design" + TeeConst_TeeMsg_GanttSample2, "Prototyping" + TeeConst_TeeMsg_GanttSample3, "Development" + TeeConst_TeeMsg_GanttSample4, "Sales" + TeeConst_TeeMsg_GanttSample5, "Marketing" + TeeConst_TeeMsg_GanttSample6, "Testing" + TeeConst_TeeMsg_GanttSample7, "Manufac." + TeeConst_TeeMsg_GanttSample8, "Debugging" + TeeConst_TeeMsg_GanttSample9, "New Version" + TeeConst_TeeMsg_GanttSample10, "Banking" + TeeConst_TeeMsg_AxisLabels, "Axis Labels" + TeeConst_TeeMsg_GalleryLine, "Line" + TeeConst_TeeMsg_GalleryPoint, "Point" + TeeConst_TeeMsg_GalleryArea, "Area" + TeeConst_TeeMsg_GalleryBar, "Bar" + TeeConst_TeeMsg_GalleryHorizBar, "Horiz. Bar" + TeeConst_TeeMsg_GalleryPie, "Pie" + TeeConst_TeeMsg_GalleryFastLine, "Fast Line" + TeeConst_TeeMsg_Rotation, "Rotation" + TeeConst_TeeMsg_PieSample1, "Cars" + TeeConst_TeeMsg_PieSample2, "Phones" + TeeConst_TeeMsg_PieSample3, "Tables" + TeeConst_TeeMsg_PieSample4, "Monitors" + TeeConst_TeeMsg_PieSample5, "Lamps" + TeeConst_TeeMsg_PieSample6, "Keyboards" + TeeConst_TeeMsg_PieSample7, "Bikes" + TeeConst_TeeMsg_AxisLogDateTime, "DateTime Axis cannot be Logarithmic" + TeeConst_TeeMsg_AxisLogNotPositive, "Logarithmic Axis Min and Max values should be >= 0" + TeeConst_TeeMsg_AxisLabelSep, "Labels Separation % must be greater than 0" + TeeConst_TeeMsg_AxisIncrementNeg, "Axis increment must be >= 0" + TeeConst_TeeMsg_AxisMinMax, "Axis Minimum Value must be <= Maximum" + TeeConst_TeeMsg_AxisMaxMin, "Axis Maximum Value must be >= Minimum" + TeeConst_TeeMsg_AxisLogBase, "Axis Logarithmic Base should be >= 2" + TeeConst_TeeMsg_MaxPointsPerPage, "MaxPointsPerPage must be >= 0" + TeeConst_TeeMsg_3dPercent, "3D effect percent must be between %d and %d" + TeeConst_TeeMsg_CircularSeries, "Circular Series dependences are not allowed" + TeeConst_TeeMsg_BarWidthPercent, "Bar Width Percent must be between 1 and 100" + TeeConst_TeeMsg_BarOffsetPercent, "Bar Offset Percent must be between -100% and 100%" + TeeConst_TeeMsg_DefaultPercentOf, "%s of %s" + TeeConst_TeeMsg_DefPercentFormat, "##0.## %" + TeeConst_TeeMsg_DefValueFormat, "#,##0.###" + TeeConst_TeeMsg_AxisTitle, "Axis Title" + 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." + 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" + TeeConst_TeeMsg_LegendTopPos, "Top Legend Position must be between 0 and 100 %" + TeeConst_TeeMsg_LegendFirstValue, "First Legend Value must be > 0" + TeeConst_TeeMsg_LegendColorWidth, "Legend Color Width must be between 0 and 100 %" + TeeConst_TeeMsg_SeriesSetDataSource, "No ParentChart to validate DataSource" + TeeConst_TeeMsg_SeriesInvDataSource, "No valid DataSource: %s" + TeeConst_TeeMsg_FillSample, "FillSampleValues NumValues must be > 0" + TeeConst_TeeMsg_Angle, "%s Angle must be between 0 and 359 degrees" + 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)" + 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." + cxEditConsts_scxRegExprIllegalIntegerValue, "Illegal integer value" + 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" + 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" + cxEditConsts_cxSDateBOM, "bom" + cxEditConsts_cxSDateEOM, "eom" + cxEditConsts_cxSDateNow, "now" + cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons" + cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control." + cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor" + 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_cxSDateYesterday, "yesterday" + cxEditConsts_cxSDateTomorrow, "tomorrow" + cxEditConsts_cxSDateSunday, "Sunday" + cxEditConsts_cxSDateMonday, "Monday" + cxEditConsts_cxSDateTuesday, "Tuesday" + cxEditConsts_cxSDateWednesday, "Wednesday" + cxEditConsts_cxSDateThursday, "Thursday" + cxEditConsts_cxSDateFriday, "Friday" + cxEditConsts_cxSDateSaturday, "Saturday" + cxEditConsts_cxSDateFirst, "first" + cxEditConsts_cxSDateSecond, "second" + cxEditConsts_cxSDateThird, "third" + cxEditConsts_cxSDateFourth, "fourth" + cxEditConsts_cxSDateFifth, "fifth" + cxEditConsts_cxSDateSixth, "sixth" + cxEditConsts_cxSDateSeventh, "seventh" + 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: " + cxDataConsts_cxSDataReadError, "Stream read error" + cxDataConsts_cxSDataWriteError, "Stream write error" + cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" + cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" + cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes" + cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds" + cxEditConsts_cxSDateToday, "today" + IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality" + 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" + 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_SNoOptionsSet, "No Install Options selected" + 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_SSPBConstantUnknown, "SPB Constant Unknown" + 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_SNoProvider, "No Provider" + 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_SDataSetUniDirectional, "Data set is uni-directional" + 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_SBlobCannotBeWritten, "Blob stream cannot be written" + 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_STransactionNotAssigned, "Transaction not assigned" + 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_SCannotSetTransaction, "Cannot set transaction" + 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" + ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s" + ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions" + ADOConst_SCantRequery, "Cannot perform a requery after connection has changed" + ADOConst_SNoFilterOptions, "FilterOptions are not supported" + ADOConst_SRecordsetNotOpen, "Recordset is not open" + ADOConst_sNameAttr, "Name" + ADOConst_sValueAttr, "Value" + 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" + SqlConst_SNOTIMPLEMENTED, "[0x001B] Not implemented" + SqlConst_SDRIVERINCOMPATIBLE, "[0x001C] Incompatible driver" + SqlConst_SNODATA, "[0x0064]: No more data" + SqlConst_SSQLERROR, "[0x0065]: SQL Error" + SqlConst_SDBXError, "dbExpress Error: %s" + SqlConst_SSQLServerError, "Database Server Error: %s" + SqlConst_SDriverNotInConfigFile, "Driver (%s) not found in Cfg file (%s)" + SqlConst_SObjectTypenameRequired, "Object type name required as parameter value" + SqlConst_SCannotCreateFile, "Cannot create file %s" + ADOConst_SMissingConnection, "Missing Connection or ConnectionString" + ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables" + ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls" + ADOConst_SMissingCommandText, "Missing %s property" + ADOConst_SNoResultSet, "CommandText does not return a result set" + ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed" + ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors" + SqlConst_SSQLPARAMNOTSET, "dbExpress Error [0x000B]: Parameter Not Set" + SqlConst_SINVALIDUSRPASS, "[0x000C] Invalid Username/Password" + SqlConst_SINVALIDPRECISION, "[0x000D]: Invalid Precision" + SqlConst_SINVALIDLEN, "[0x000E]: Invalid Length" + SqlConst_SINVALIDXISOLEVEL, "[0x000F]: Invalid Transaction Isolation Level" + SqlConst_SINVALIDTXNID, "[0x0010]: Invalid Transaction ID" + SqlConst_SDUPLICATETXNID, "[0x0011]: Duplicate Transaction ID" + SqlConst_SDRIVERRESTRICTED, "[0x0012]: Application is not licensed to use this feature" + SqlConst_SLOCALTRANSACTIVE, "[0x0013]: Local Transaction already active" + SqlConst_SMULTIPLETRANSNOTENABLED, "[0x0014]: Multiple Transactions not Enabled" + SqlConst_SCONNECTIONFAILED, "[0x0015]: Connection failed" + SqlConst_SDRIVERINITFAILED, "[0x0016]: Driver initialization failed" + SqlConst_SOPTLOCKFAILED, "[0x0017]: Optimistic Locking failed" + SqlConst_SINVALIDREF, "[0x0018]: Invalid REF" + SqlConst_SNOTABLE, "[0x0019]: No table found" + SqlConst_SMISSINGPARAMINSQL, "[0x001A] Missing parameter marker in SQL" + SqlConst_SNoCursor, "Cursor not returned from Query" + SqlConst_SErrorMappingError, "SQL Error: Error mapping failed" + SqlConst_SStoredProcsNotSupported, "Stored Procedures not supported by '%s' Server" + SqlConst_SPackagesNotSupported, "Packages are not supported by '%s' Server" + SqlConst_SDBXUNKNOWNERROR, "dbExpress Error: Unknown Error Code '%s'" + SqlConst_SNOERROR, "" + SqlConst_SWARNING, "[0x0001]: Warning" + SqlConst_SNOMEMORY, "[0x0002]: Insufficient Memory for Operation" + SqlConst_SINVALIDFLDTYPE, "[0x0003]: Invalid Field Type" + SqlConst_SINVALIDHNDL, "[0x0004]: Invalid Handle" + SqlConst_SNOTSUPPORTED, "[0x0005]: Operation Not Supported" + SqlConst_SINVALIDTIME, "[0x0006]: Invalid Time" + SqlConst_SINVALIDXLATION, "[0x0007]: Invalid Data Translation" + SqlConst_SOUTOFRANGE, "[0x0008]: Parameter/Column out of Range" + SqlConst_SINVALIDPARAM, "[0x0009]: Invalid Parameter" + SqlConst_SEOF, "[0x000A]: Result set at EOF" + SqlConst_SMissingSQLConnection, "SQLConnection property required for this operation" + SqlConst_SConnectionNameMissing, "Connection name missing" + SqlConst_SEmptySQLStatement, "No SQL statement available" + SqlConst_SNoParameterValue, "No value for parameter '%s'" + SqlConst_SNoSqlStatement, "Missing query, table name or procedure name" + SqlConst_SMissingDataBaseName, "Missing Database property" + SqlConst_SMissingDriverName, "Missing DriverName property" + SqlConst_SPrepareError, "Unable to execute Query" + SqlConst_SObjectNameError, "Table/Procedure not found" + SqlConst_SSQLDataSetOpen, "Unable to determine field names for %s" + SqlConst_SNoActiveTrans, "There is no active transaction" + SqlConst_SActiveTrans, "A transaction is already active" + SqlConst_SDllLoadError, "Unable to Load %s" + SqlConst_SDllProcLoadError, "Unable to Find Procedure %s" + SqlConst_SMissingDLLName, "DLL/Shared Library Name not Set" + SqlConst_SMissingDriverRegFile, "Driver/Connection Registry File '%s' not found" + 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_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" + uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" + uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." + SqlConst_SLoginError, "Cannot connect to database '%s'" + SqlConst_SMonitorActive, "Cannot change connection on Active Monitor" + SqlConst_SDatabaseOpen, "Cannot perform this operation on an open connection" + SqlConst_SDatabaseClosed, "Cannot perform this operation on a closed connection" + DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" + 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" + 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_UnknownParameter, "Unknown parameter %s" + uDARes_err_FieldIsNotBound, "Field is not bound" + uDARes_err_CannotFindField, "Cannot find field %s" + uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s" + DBConsts_STextTrue, "True" + DBConsts_SParameterNotFound, "Parameter '%s' not found" + DBConsts_SInvalidVersion, "Unable to load bind parameters" + DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" + DBConsts_SAggActive, "Property may not be modified while aggregate is active" + DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" + DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" + DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" + DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" + DBConsts_SUnassignedVar, "Unassigned variant value" + DBConsts_SRecordNotFound, "Record not found" + DBConsts_SFileNameBlank, "FileName property cannot be blank" + 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_SExprNoRParenOrComma, "')' or ',' expected but %s found" + DBConsts_SExprExpected, "Expression expected but %s found" + DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" + DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" + DBConsts_SExprRangeError, "Constant out of range" + DBConsts_SExprIncorrect, "Incorrectly formed filter expression" + DBConsts_SExprNothing, "nothing" + DBConsts_SExprTypeMis, "Type mismatch in expression" + DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" + DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" + DBConsts_SExprNotAgg, "Expression is not an aggregate expression" + DBConsts_SExprBadConst, "Constant is not correct type %s" + DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" + DBConsts_SExprEmptyInList, "IN predicate list may not be empty" + DBConsts_SInvalidKeywordUse, "Invalid use of keyword" + DBConsts_STextFalse, "False" + DBConsts_SCircularDataLink, "Circular datalinks are not allowed" + DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" + DBConsts_SDataSourceChange, "DataSource cannot be changed" + DBConsts_SNoNestedMasterSource, "Nested datasets cannot have a MasterSource" + 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_SExprTermination, "Filter expression incorrectly terminated" + DBConsts_SExprNameError, "Unterminated field name" + DBConsts_SExprStringError, "Unterminated string constant" + DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" + DBConsts_SExprNoLParen, "'(' expected but %s found" + DBConsts_SExprNoRParen, "')' expected but %s found" + 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" + DBConsts_SFieldIndexError, "Field index out of range" + DBConsts_SNoFieldIndexes, "No index currently active" + DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" + DBConsts_SIndexFieldMissing, "Cannot access index field '%s'" + DBConsts_SDuplicateIndexName, "Duplicate index name '%s'" + DBConsts_SNoIndexForFields, "No index for fields '%s'" + DBConsts_SIndexNotFound, "Index '%s' not found" + IdResourceStrings_RSSocksServerAddressError, "Address type not supported." + IdResourceStrings_RSUnevenSizeInDecodeStream, "Uneven size in DecodeToStream." + IdResourceStrings_RSUnevenSizeInEncodeStream, "Uneven size in Encode." + IdResourceStrings_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" + 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'" + 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'" + IdResourceStrings_RSStackENOTEMPTY, "Directory not empty" + IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found." + IdResourceStrings_RSSocksRequestFailed, "Request rejected or failed." + IdResourceStrings_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." + IdResourceStrings_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." + IdResourceStrings_RSSocksUnknownError, "Unknown socks error." + IdResourceStrings_RSSocksServerRespondError, "Socks server did not respond." + IdResourceStrings_RSSocksAuthMethodError, "Invalid socks authentication method." + IdResourceStrings_RSSocksAuthError, "Authentication error to socks server." + IdResourceStrings_RSSocksServerGeneralError, "General SOCKS server failure." + IdResourceStrings_RSSocksServerPermissionError, "Connection not allowed by ruleset." + IdResourceStrings_RSSocksServerNetUnreachableError, "Network unreachable." + IdResourceStrings_RSSocksServerHostUnreachableError, "Host unreachable." + IdResourceStrings_RSSocksServerConnectionRefusedError, "Connection refused." + IdResourceStrings_RSSocksServerTTLExpiredError, "TTL expired." + IdResourceStrings_RSSocksServerCommandError, "Command not supported." + IdResourceStrings_RSStackENETDOWN, "Network is down." + IdResourceStrings_RSStackENETUNREACH, "Network is unreachable." + IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset." + IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort." + 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_RSStackEMFILE, "Too many open files." + IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block. " + IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress." + IdResourceStrings_RSStackEALREADY, "Operation already in progress." + 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_RSHTTPGatewayTimeout, "Gateway timeout" + IdResourceStrings_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" + IdResourceStrings_RSHTTPUnknownResponseCode, "Unknown Response Code" + IdResourceStrings_RSHTTPHeaderAlreadyWritten, "Header has already been written." + IdResourceStrings_RSHTTPErrorParsingCommand, "Error in parsing command." + IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." + IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." + IdResourceStrings_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." + IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." + IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" + IdResourceStrings_RSStackInvalidIP, "%s is not a valid IP address." + IdResourceStrings_RSStackEINTR, "Interrupted system call." + IdResourceStrings_RSStackEBADF, "Bad file number." + IdResourceStrings_RSStackEACCES, "Access denied." + IdResourceStrings_RSStackEFAULT, "Bad address." + IdResourceStrings_RSStackEINVAL, "Invalid argument." + IdResourceStrings_RSHTTPNotFound, "Not Found" + IdResourceStrings_RSHTTPMethodeNotallowed, "Method not allowed" + IdResourceStrings_RSHTTPNotAcceptable, "Not Acceptable" + IdResourceStrings_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" + IdResourceStrings_RSHTTPRequestTimeout, "Request Timeout" + IdResourceStrings_RSHTTPConflict, "Conflict" + IdResourceStrings_RSHTTPGone, "Gone" + IdResourceStrings_RSHTTPLengthRequired, "Length Required" + IdResourceStrings_RSHTTPPreconditionFailed, "Precondition Failed" + IdResourceStrings_RSHTTPRequestEntityToLong, "Request Entity To Long" + IdResourceStrings_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" + IdResourceStrings_RSHTTPUnsupportedMediaType, "Unsupported Media Type" + IdResourceStrings_RSHTTPInternalServerError, "Internal Server Error" + IdResourceStrings_RSHTTPNotImplemented, "Not Implemented" + IdResourceStrings_RSHTTPBadGateway, "Bad Gateway" + IdResourceStrings_RSHTTPServiceUnavailable, "Service Unavailable" + IdResourceStrings_RSHTTPContinue, "Continue" + IdResourceStrings_RSHTTPOK, "OK" + IdResourceStrings_RSHTTPCreated, "Created" + IdResourceStrings_RSHTTPAccepted, "Accepted" + IdResourceStrings_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" + IdResourceStrings_RSHTTPNoContent, "No Content" + IdResourceStrings_RSHTTPResetContent, "Reset Content" + IdResourceStrings_RSHTTPPartialContent, "Partial Content" + IdResourceStrings_RSHTTPMovedPermanently, "Moved Permanently" + IdResourceStrings_RSHTTPMovedTemporarily, "Moved Temporarily" + IdResourceStrings_RSHTTPSeeOther, "See Other" + IdResourceStrings_RSHTTPNotModified, "Not Modified" + IdResourceStrings_RSHTTPUseProxy, "Use Proxy" + IdResourceStrings_RSHTTPBadRequest, "Bad Request" + IdResourceStrings_RSHTTPUnauthorized, "Unauthorized" + IdResourceStrings_RSHTTPForbidden, "Forbidden" + IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" + IdResourceStrings_RSReadTimeout, "Read Timeout" + IdResourceStrings_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." + IdResourceStrings_RSNoCommandHandlerFound, "No command handler found." + IdResourceStrings_RSWS2CallError, "Error on call Winsock2 library function %s" + IdResourceStrings_RSWS2LoadError, "Error on loading Winsock2 library (%s)" + IdResourceStrings_RSMIMEExtensionEmpty, "Extension is empty" + IdResourceStrings_RSMIMEMIMETypeEmpty, "Mimetype is empty" + IdResourceStrings_RSMIMEMIMEExtAlreadyExists, "Extension already exits" + IdResourceStrings_RSStatusResolving, "Resolving hostname %s." + IdResourceStrings_RSStatusConnecting, "Connecting to %s." + IdResourceStrings_RSStatusConnected, "Connected." + IdResourceStrings_RSStatusDisconnecting, "Disconnecting." + IdResourceStrings_RSStatusDisconnected, "Disconnected." + IdResourceStrings_RSStatusText, "%s" + IdResourceStrings_RSConnectTimeout, "Connect timed out." + IdResourceStrings_RSCannotAllocateSocket, "Cannot allocate socket." + IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." + IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." + IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." + IdResourceStrings_RSNotEnoughDataInBuffer, "Not enough data in buffer." + IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." + IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." + IdResourceStrings_RSThreadClassNotSpecified, "Thread Class Not Specified." + IdResourceStrings_RSFileNotFound, "File \"%s\" not found" + IdResourceStrings_RSOnlyOneAntiFreeze, "Only one TIdAntiFreeze can exist per application." + IdResourceStrings_RSNotConnected, "Not Connected" + IdResourceStrings_RSObjectTypeNotSupported, "Object type not supported." + IdResourceStrings_RSTerminateThreadTimeout, "Terminate Thread Timeout" + IdResourceStrings_RSNoExecuteSpecified, "No execute handler found." + IdResourceStrings_RSIdNoDataToRead, "No data to read." + IdResourceStrings_RSCanNotBindRange, "Can not bind in port range (%d - %d)" + JclResources_RsIntelCacheDescr7C, "2° Level cache, 1 MBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7D, "2° Level cache, 2 MByte, 8-way set associative, 64byte line size" + JclResources_RsIntelCacheDescr7F, "2° Level cache, 512 KByte, 2-way set associative, 64-byte line size" + JclResources_RsIntelCacheDescr82, "2° Level cache, 256 KBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr83, "2° Level cache, 512 KBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr84, "2° Level cache, 1 MBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr85, "2° Level cache, 2 MBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr86, "2° Level cache, 512 KByte, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr87, "2° 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_RsIntelCacheDescrB3, "Data TLB, 4 KByte Pages, 4-way set associative, 128 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" + JclResources_RsIntelCacheDescr51, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 128 Entries" + JclResources_RsIntelCacheDescr52, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 256 Entries" + JclResources_RsIntelCacheDescr5B, "Data TLB, 4 KBytes and 4 MBytes pages, 64 Entries" + JclResources_RsIntelCacheDescr5C, "Data TLB, 4 KBytes and 4 MBytes pages, 128 Entries" + JclResources_RsIntelCacheDescr5D, "Data TLB, 4 KBytes and 4 MBytes pages, 256 Entries" + JclResources_RsIntelCacheDescr60, "1° Level data cache: 16 KByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr66, "1° Level Data cache, 8 KBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr67, "1° Level Data cache, 16 KBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr68, "1° Level Data cache, 32 KBytes, 4-way set associative, 64 Bytes 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_RsIntelCacheDescr78, "2° Level cache, 1 MBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr79, "2° Level cache, 128 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7A, "2° Level cache, 256 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7B, "2° Level cache, 512 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr08, "16KB instruction cache, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0A, "8KB data cache 2-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0C, "16KB data cache, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr22, "3° Level cache, 512 KBytes, 4-way set associative, 2 lines per sector, 128 byte sector size" + JclResources_RsIntelCacheDescr23, "3° Level cache, 1 MBytes, 8-way set associative, 2 lines per sector, 128 byte sector size" + JclResources_RsIntelCacheDescr25, "3° Level cache, 2 MBytes, 8-way set associative, 2 lines per sector, 128 byte line size" + JclResources_RsIntelCacheDescr29, "3° Level cache, 4M Bytes, 8-way set associative, 2 lines per sector, 128 byte line size" + JclResources_RsIntelCacheDescr2C, "1° Level data cache: 32K Bytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr30, "1° Level instruction cache: 32K Bytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr40, "No L2 cache" + JclResources_RsIntelCacheDescr41, "Unified cache, 32 byte cache line, 4-way set associative, 128Kb" + JclResources_RsIntelCacheDescr42, "Unified cache, 32 byte cache line, 4-way set associative, 256Kb" + JclResources_RsIntelCacheDescr43, "Unified cache, 32 byte cache line, 4-way set associative, 512Kb" + JclResources_RsIntelCacheDescr44, "Unified cache, 32 byte cache line, 4-way set associative, 1Mb" + JclResources_RsIntelCacheDescr45, "Unified cache, 32 byte cache line, 4-way set associative, 2Mb" + JclResources_RsIntelCacheDescr50, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 64 Entries" + JclResources_RsRTTIMethodKind, "Method kind: " + 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_RsBlankSearchString, "Search string cannot be blank" + JclResources_RsIntelCacheDescr00, "Null descriptor" + JclResources_RsIntelCacheDescr01, "Instruction TLB, 4Kb pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr02, "Instruction TLB, 4Mb pages, fully associative, 2 entries" + JclResources_RsIntelCacheDescr03, "Data TLB, 4Kb pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescr04, "Data TLB, 4Mb pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescr06, "8KB instruction cache, 4-way set associative, 32 byte line size" + JclResources_RsRTTIDefault, "default" + 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_RsRTTIVar, "var " + 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" + 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_RsMenuHighlight, "Menu Highlight" + JclResources_RsFileUtilsNoVersionInfo, "File contains no version information" + JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\" for read" + JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\" for write" + JclResources_RsUnableToAccessValue, "Unable to open key \"%s\" and access value \"%s\"" + JclResources_RsWrongDataType, "\"%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'." + 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_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_RsClTurquoise, "Turquoise" + JvResources_RsClPlum, "Plum" + JvResources_RsClGray25, "Gray 25%" + JvResources_RsClRose, "Rose" + JvResources_RsClTan, "Tan" + JvResources_RsClLightYellow, "Light Yellow" + JvResources_RsClLightGreen, "Light Green" + 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_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_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_RsClSilver, "Silver" + JvResources_RsClRed, "Red" + JvResources_RsClLime, "Lime" + JvResources_RsClYellow, "Yellow" + JvResources_RsClBlue, "Blue" + JvResources_RsClFuchsia, "Fuchsia" + JvResources_RsClAqua, "Aqua" + 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_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" + 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" + ComStrs_sFailSetCalMaxSelRange, "Failed to set maximum selection range" + ComStrs_sFailSetCalMinMaxRange, "Failed to set calendar min/max range" + ComStrs_sFailsetCalSelRange, "Failed to set calendar selected range" + 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'" + 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" + 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_sInvalidComCtl32, "This control requires version 4.70 or greater of COMCTL32.DLL" + ComStrs_sDateTimeMax, "Date exceeds maximum of %s" + ComStrs_sDateTimeMin, "Date is less than minimum of %s" + ComStrs_sNeedAllowNone, "You must be in ShowCheckbox mode to set to this date" + ComStrs_sFailSetCalDateTime, "Failed to set calendar date or time" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" not exists." + uRODECConst_sInvalidStringFormat, "Input is not an valid %s Format." + uRODECConst_sInvalidFormatString, "Input can not be convert 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 to %d-%d bytes" + uRODECConst_sNotInitialized, "%s is not initialized call Init() or InitKey() before." + ComStrs_sTabFailClear, "Failed to clear tab control" + ComStrs_sTabFailDelete, "Failed to delete tab at index %d" + 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_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_MessageNotAssigned, "Message is NIL" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + 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_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_UnknownProxyInterface, "Unknown proxy interface \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for 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_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_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + 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" + 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_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + uRORes_err_InvalidIndex, "Invalid index %d" + uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" + uRORes_err_InvalidStream, "Invalid stream" + uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\"" + uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_srNone, "(None)" + 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_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_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + 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_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + 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_SOKButton, "OK" + 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_SVMetafiles, "Metafiles" + Consts_SVEnhMetafiles, "Enhanced Metafiles" + Consts_SVIcons, "Icons" + Consts_SVBitmaps, "Bitmaps" + Consts_SMaskErr, "Invalid input value" + 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_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_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownExtension, "Unknown picture file extension (.%s)" + 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_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'" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + 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_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" + 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_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_SVarArrayWithHResult, "Unexpected variant or safe array error: %s%.8x" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" + 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_SPrivilege, "Privileged instruction" + 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_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" + SysConst_SEndOfFile, "Read beyond end of file" +END + diff --git a/Source/Servidor con DBSesiones/FactuGES_Server.res b/Source/Servidor con DBSesiones/FactuGES_Server.res new file mode 100644 index 00000000..9530e785 Binary files /dev/null and b/Source/Servidor con DBSesiones/FactuGES_Server.res differ diff --git a/Source/Servidor con DBSesiones/ModelSupport_FactuGES_Server/FactuGES_Server.prjconfig b/Source/Servidor con DBSesiones/ModelSupport_FactuGES_Server/FactuGES_Server.prjconfig new file mode 100644 index 00000000..c8f28340 --- /dev/null +++ b/Source/Servidor con DBSesiones/ModelSupport_FactuGES_Server/FactuGES_Server.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Servidor con DBSesiones/ModelSupport_FactuGES_Server/default.txaPackage b/Source/Servidor con DBSesiones/ModelSupport_FactuGES_Server/default.txaPackage new file mode 100644 index 00000000..e69de29b diff --git a/Source/Servidor con DBSesiones/Utiles/uDatabaseUtils.pas b/Source/Servidor con DBSesiones/Utiles/uDatabaseUtils.pas new file mode 100644 index 00000000..5851a821 --- /dev/null +++ b/Source/Servidor con DBSesiones/Utiles/uDatabaseUtils.pas @@ -0,0 +1,32 @@ +unit uDatabaseUtils; + +interface + +function GetNextAutoInc(const GeneratorName: String): Integer; + +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; + + +end. diff --git a/Source/Servidor con DBSesiones/Utiles/uSesionesUtils.pas b/Source/Servidor con DBSesiones/Utiles/uSesionesUtils.pas new file mode 100644 index 00000000..c5e77e54 --- /dev/null +++ b/Source/Servidor con DBSesiones/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 + 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 + oldObj: TObject; + 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 con DBSesiones/uAcercaDe.dfm b/Source/Servidor con DBSesiones/uAcercaDe.dfm new file mode 100644 index 00000000..f4ef3961 --- /dev/null +++ b/Source/Servidor con DBSesiones/uAcercaDe.dfm @@ -0,0 +1,959 @@ +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 = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + 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/Servidor con DBSesiones/uAcercaDe.pas b/Source/Servidor con DBSesiones/uAcercaDe.pas new file mode 100644 index 00000000..817ce225 --- /dev/null +++ b/Source/Servidor con DBSesiones/uAcercaDe.pas @@ -0,0 +1,47 @@ +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; + Image1: TImage; + 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 + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('CONSTRUCCIONES CNJ S.A.'); + end; + finally + FreeAndNil(Obj); + end; +end; + +end. diff --git a/Source/Servidor con DBSesiones/uDataModuleServer.dfm b/Source/Servidor con DBSesiones/uDataModuleServer.dfm new file mode 100644 index 00000000..12ec21db --- /dev/null +++ b/Source/Servidor con DBSesiones/uDataModuleServer.dfm @@ -0,0 +1,325 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 307 + Width = 382 + object HTTPServer: TROIndyHTTPServer + Encryption.UseCompression = True + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.CommandHandlers = <> + IndyServer.DefaultPort = 8099 + IndyServer.Greeting.NumericCode = 0 + IndyServer.MaxConnectionReply.NumericCode = 0 + IndyServer.ReplyExceptionCode = 0 + IndyServer.ReplyTexts = <> + IndyServer.ReplyUnknownCommand.NumericCode = 0 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Left = 136 + Top = 16 + end + object IBXDriver: TDAIBXDriver + Left = 304 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + AutoLoad = False + TraceActive = True + TraceFlags = [toPrepare, toExecute, toFetch, toError, toStmt, toConnect, toTransact, toBlob, toService, toMisc, toParams] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + MaxPoolSize = 10 + PoolTimeoutSeconds = 60 + PoolBehaviour = pbWait + WaitIntervalSeconds = 1 + Connections = < + item + Name = 'IBX' + ConnectionString = + 'IBX?Server=localhost;Database=D:\Proyectos\FactuGES (Luis Leon)\Codigo' + + '\BD\FACTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;Char' + + 'set=ISO8859_1;' + Default = True + Tag = 0 + end> + DriverManager = DriverManager + PoolingEnabled = True + 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 = 304 + Top = 208 + end + object JvLogFile1: TJvLogFile + FileName = 'serverlog.txt' + AutoSave = True + Left = 248 + Top = 208 + end + object DBSessionManager: TDADBSessionManager + SessionDuration = -1 + OnSessionCreated = DBSessionManagerSessionCreated + OnSessionDeleted = SessionManagerSessionDeleted + Schema = schSesiones + FieldNameSessionID = 'SessionID' + FieldNameCreated = 'Created' + FieldNameLastAccessed = 'LastAccessed' + FieldNameData = 'Data' + InsertSessionCommand = 'Insert_Session' + UpdateSessionCommand = 'Update_Session' + DeleteSessionCommand = 'Delete_Session' + ClearSessionsCommand = 'ClearSessions' + GetSessionCountDataSet = 'GetSessionCount' + GetSessionDataSet = 'GetSession' + Connection = 'IBX' + Left = 48 + Top = 216 + end + object schSesiones: TDASchema + ConnectionManager = ConnectionManager + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + SQL = 'SELECT'#10' COUNT(*)'#10' FROM'#10' Sessions' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'GetSessionCount' + Fields = <> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'SessionID' + DataType = datString + Size = 38 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' SessionID, Created, LastAccessed, Data'#10' FROM'#10' Ses' + + 'sions'#10' WHERE'#10' SessionID = :SessionID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'SessionID' + TableField = 'SessionID' + end + item + DatasetField = 'Created' + TableField = 'Created' + end + item + DatasetField = 'LastAccessed' + TableField = 'LastAccessed' + end + item + DatasetField = 'Data' + TableField = 'Data' + end> + end> + Name = 'GetSession' + Fields = < + item + Name = 'SessionID' + DataType = datString + Size = 38 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'Created' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LastAccessed' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'Data' + DataType = datBlob + BlobType = dabtBlob + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'SessionID' + DataType = datString + Size = 38 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'Created' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'LastAccessed' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'Data' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = '[TABLENAME]' + SQL = + 'INSERT'#10' INTO Sessions'#10' (SessionID, Created, LastAccessed, Da' + + 'ta)'#10' VALUES'#10' (:SessionID, :Created, :LastAccessed, :Data)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Session' + end + item + Params = < + item + Name = 'LastAccessed' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'Data' + DataType = datBlob + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SessionID' + DataType = datString + Size = 38 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'UPDATE'#10' Sessions'#10' SET'#10' LastAccessed = :LastAccessed,'#10' ' + + 'Data = :Data'#10' WHERE'#10' SessionID = :SessionID' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Session' + end + item + Params = < + item + Name = 'LastAccessed' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'DELETE'#10' FROM'#10' Sessions'#10' WHERE'#10' LastAccessed < :LastAcces' + + 'sed' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ClearSessions' + end + item + Params = < + item + Name = 'SessionID' + DataType = datString + Size = 38 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = 'DELETE'#10' FROM'#10' Sessions'#10' WHERE'#10' SessionID = :SessionID' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Session' + end> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 160 + end +end diff --git a/Source/Servidor con DBSesiones/uDataModuleServer.pas b/Source/Servidor con DBSesiones/uDataModuleServer.pas new file mode 100644 index 00000000..102c21f3 --- /dev/null +++ b/Source/Servidor con DBSesiones/uDataModuleServer.pas @@ -0,0 +1,261 @@ +unit uDataModuleServer; + +interface + +uses + SysUtils, Classes, uDAEngine, uDAIBXDriver, uDAClasses, uDADriverManager, + uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, + uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, + JvAppStorage, JvAppRegistryStorage, uDAInterfaces, + JvComponentBase, uDAADODriver, uDADBXDriver, uROEventRepository, JvLogFile, + uRODBSessionManager, uDADBSessionManager, SyncObjs; + +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; + IBXDriver: TDAIBXDriver; + DriverManager: TDADriverManager; + JvAppRegistryStorage: TJvAppRegistryStorage; + JvLogFile1: TJvLogFile; + DBSessionManager: TDADBSessionManager; + schSesiones: TDASchema; + 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 DBSessionManagerSessionCreated(const aSession: TROSession); + private + fCritical : TCriticalSection; + FConnectionName : string; + function GetConnectionString: string; + public + FDBServer : string; + FDBPort : string; + FDBPath : string; + FDBUser : string; + FDBPass : string; + FInicioWindows : Boolean; + FServerPort : string; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + procedure RefrescarConexion; + 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 + DateUtils, JclFileUtils, ActiveX, Forms, Registry, Windows, Dialogs, + uSesionesUtils, uServerMainForm; + +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.DataModuleCreate(Sender: TObject); +begin + fCritical := TCriticalSection.Create; + LeerConfiguracion; + RefrescarConexion; + JvLogFile1.Clear; +end; + +function TdmServer.GetConnectionString: string; +begin + Result := 'IBX?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', ''); + + 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); + + 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; + idx: integer; +begin + fCritical.Enter; + try + idx := fServerForm.ListBox.Items.IndexOf(GUIDToString(aSessionID)); + if (idx>=0) then + fServerForm.ListBox.Items.Delete(idx); + finally + fCritical.Leave; + end; + +// if (csDestroying in ComponentState) then Exit; // See destructor + + aSession := DBSessionManager.FindSession(aSessionID); + if Assigned(aSession) then + SesionesHelper.DeleteSessionObject(aSession, SESION_LOGININFO); +end; + +procedure TdmServer.DataModuleDestroy(Sender: TObject); +begin + FreeAndNIL(fCritical); // This executes before the SessionDeleted event! + + DBSessionManager.ClearSessions(False); + HTTPServer.Active := False; +end; + +procedure TdmServer.DBSessionManagerSessionCreated(const aSession: TROSession); +begin + fCritical.Enter; + try + fServerForm.ListBox.Items.Add(GUIDToString(aSession.SessionID)); + finally + fCritical.Leave; + end; +end; + +procedure TdmServer.DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); +begin + JvLogFile1.Add('', Text + #10#13 + #10#13); +end; + +procedure TdmServer.RefrescarConexion; +begin + HTTPServer.Active := False; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; + + ConnectionName := ConnectionManager.GetDefaultConnectionName; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; + CoInitialize(nil); + HTTPServer.Active := TRUE; +end; + +procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); +begin + HTTPServer.Port := StrToInt(FServerPort); +end; + +end. diff --git a/Source/Servidor con DBSesiones/uServerMainForm.dfm b/Source/Servidor con DBSesiones/uServerMainForm.dfm new file mode 100644 index 00000000..acc88c92 --- /dev/null +++ b/Source/Servidor con DBSesiones/uServerMainForm.dfm @@ -0,0 +1,1081 @@ +object fServerForm: TfServerForm + Left = 806 + Top = 611 + BorderStyle = bsDialog + Caption = 'Administrador de puntos de venta - Server' + ClientHeight = 371 + ClientWidth = 371 + 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 + OnCreate = FormCreate + DesignSize = ( + 371 + 371) + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 371 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 371 + 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} + end + end + object ListBox: TListBox + Left = 8 + Top = 67 + Width = 355 + Height = 222 + Anchors = [akLeft, akTop, akRight, akBottom] + ItemHeight = 13 + TabOrder = 1 + end + object Button1: TButton + Left = 8 + Top = 304 + Width = 75 + Height = 25 + Caption = 'Button1' + TabOrder = 2 + OnClick = Button1Click + end + object Button2: TButton + Left = 104 + Top = 304 + Width = 75 + Height = 25 + Caption = 'Button2' + TabOrder = 3 + OnClick = Button2Click + 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 JvTrayIcon: TJvTrayIcon + IconIndex = 0 + DropDownMenu = PopupMenu1 + PopupMenu = PopupMenu1 + Delay = 300 + Snap = True + Visibility = [tvVisibleTaskBar, tvAutoHide] + Left = 8 + Top = 16 + end +end diff --git a/Source/Servidor con DBSesiones/uServerMainForm.pas b/Source/Servidor con DBSesiones/uServerMainForm.pas new file mode 100644 index 00000000..7af4df91 --- /dev/null +++ b/Source/Servidor con DBSesiones/uServerMainForm.pas @@ -0,0 +1,122 @@ +unit uServerMainForm; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, + uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, + uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, frxClass, frxPreview, + JvComponent, JvTrayIcon, ActnList, Menus, XPMan, JvExControls, + JvGradient, JvGIF, ExtCtrls, JvComponentBase, JvLogFile, + uROSessions; + +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; + JvTrayIcon: TJvTrayIcon; + Panel1: TPanel; + Image1: TImage; + JvGradient1: TJvGradient; + actAcerca: TAction; + Acercade1: TMenuItem; + N1: TMenuItem; + ListBox: TListBox; + Button1: TButton; + Button2: TButton; + procedure actCerrarExecute(Sender: TObject); + procedure actRestartExecute(Sender: TObject); + procedure actOpcionesExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure actAcercaExecute(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fServerForm : TfServerForm; + +implementation + +uses + uDataModuleServer, uConfiguracion, uAcercaDe; + +{$R *.dfm} + +procedure TfServerForm.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfServerForm.actRestartExecute(Sender: TObject); +begin + dmServer.RefrescarConexion; +end; + +procedure TfServerForm.Button1Click(Sender: TObject); +var + ASession : TROSession; +begin + + ASession := dmServer.DBSessionManager.FindSession(StringToGUID(ListBox.Items[0])); + if Assigned(ASession) then + ShowMessage('Session ' + ListBox.Items[0] + 'encontrada'); + +end; + +procedure TfServerForm.Button2Click(Sender: TObject); +begin + ShowMessage(IntToStr(dmServer.DBSessionManager.GetSessionCount)); +end; + +procedure TfServerForm.actOpcionesExecute(Sender: TObject); +var + AForm : TForm; +begin + AForm := TfConfiguracion.Create(NIL); + try + AForm.ShowModal; + finally + AForm.Free; + actRestart.Execute; + end; +end; + +procedure TfServerForm.FormCreate(Sender: TObject); +begin + //JvTrayIcon.HideApplication; + JvTrayIcon.Hint := 'FactuGES (Servidor)' + + #10#13 + dmServer.ConnectionName; + JvTrayIcon.Active := True; +end; + +procedure TfServerForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + JvTrayIcon.Active := False; +end; + +procedure TfServerForm.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + +end. diff --git a/Source/Servidor con DBSesiones/uUsersManager.pas b/Source/Servidor con DBSesiones/uUsersManager.pas new file mode 100644 index 00000000..a2a04743 --- /dev/null +++ b/Source/Servidor con DBSesiones/uUsersManager.pas @@ -0,0 +1,94 @@ +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.DBSessionManager.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; + AList := NIL; + 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. diff --git a/Source/Servidor/Configuracion/uConexionBD.dfm b/Source/Servidor/Configuracion/uConexionBD.dfm new file mode 100644 index 00000000..112f31bd --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionBD.dfm @@ -0,0 +1,142 @@ +inherited frConexionBD: TfrConexionBD + Width = 394 + Height = 262 + Visible = True + 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 = lfUltraFlat + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfUltraFlat + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfUltraFlat + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfUltraFlat + 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 00000000..e5c79ca3 --- /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, cxShellBrowserDialog, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, + DB, IBDatabase, uFrameConfiguracion; + +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('Conexión válida con la base de datos.', 'FactuGES', MB_OK); + Connected := False; + except + on E : Exception do + begin + Aux := 'No se ha podido establecer la conexión 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/uConexionOSC.dfm b/Source/Servidor/Configuracion/uConexionOSC.dfm new file mode 100644 index 00000000..2bf4f318 --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionOSC.dfm @@ -0,0 +1,55 @@ +inherited frConexionOSC: TfrConexionOSC + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 333 + Height = 169 + Caption = 'Configuraci'#243'n de la tienda' + TabOrder = 0 + object Label1: TLabel + Left = 31 + Top = 36 + Width = 67 + Height = 13 + Alignment = taRightJustify + Caption = 'Origen ODBC:' + end + object edtBDSERVER: TcxTextEdit + Left = 104 + Top = 32 + 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 = 'edtBDSERVER' + Width = 209 + end + end + object bComprobar: TButton + Left = 180 + Top = 191 + Width = 161 + Height = 25 + Action = actComprobar + TabOrder = 1 + end + object ActionList1: TActionList + Left = 24 + Top = 24 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + object actComprobar: TAction + Caption = 'Comprobar la conexi'#243'n' + OnExecute = actComprobarExecute + end + end +end diff --git a/Source/Servidor/Configuracion/uConexionOSC.pas b/Source/Servidor/Configuracion/uConexionOSC.pas new file mode 100644 index 00000000..288a1356 --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionOSC.pas @@ -0,0 +1,58 @@ +unit uConexionOSC; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, ActnList, StdCtrls, cxControls, cxContainer, + cxEdit, cxTextEdit, cxDBEdit, DB; + +type + TfrConexionOSC = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + Label1: TLabel; + bComprobar: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + actComprobar: TAction; + edtBDSERVER: TcxTextEdit; + procedure actComprobarExecute(Sender: TObject); + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +var + frConexionOSC: TfrConexionOSC; + +implementation + +uses + uTiendaWebUtils, uDataModuleServer; + +{$R *.dfm} + +procedure TfrConexionOSC.actComprobarExecute(Sender: TObject); +var + AErrorMsg : String; +begin + if HayConexionConTienda(edtBDSERVER.Text, AErrorMsg) then + ShowMessage('Conexión válida con la tienda') + else + ShowMessage('No se ha podido establecer la conexión con la tienda web.' + + #10#13 + #10#13 + AErrorMsg); +end; + +procedure TfrConexionOSC.Finalize; +begin + dmServer.FOSCServer := edtBDSERVER.Text; +end; + +procedure TfrConexionOSC.Init; +begin + edtBDSERVER.Text := dmServer.FOSCServer; +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfGeneral.dfm b/Source/Servidor/Configuracion/uConfGeneral.dfm new file mode 100644 index 00000000..7e7f40f8 --- /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 00000000..a81c5ee3 --- /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.dfm b/Source/Servidor/Configuracion/uConfiguracion.dfm new file mode 100644 index 00000000..3a36bc11 --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.dfm @@ -0,0 +1,193 @@ +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 = TabSheet1 + 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 + object TabSheet1: TTabSheet + Caption = 'Tienda web' + ImageIndex = 2 + inline frConexionOSC1: TfrConexionOSC + Left = 0 + Top = 0 + Width = 391 + Height = 260 + Align = alClient + TabOrder = 0 + ExplicitWidth = 349 + ExplicitHeight = 233 + inherited GroupBox1: TGroupBox + Width = 373 + ExplicitWidth = 373 + end + inherited bComprobar: TButton + Left = 220 + ExplicitLeft = 220 + end + inherited ActionList1: TActionList + inherited actAceptar: TAction + OnExecute = nil + end + inherited actCancelar: TAction + OnExecute = nil + end + inherited actComprobar: TAction + OnUpdate = nil + end + end + 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 00000000..79b929d7 --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.pas @@ -0,0 +1,107 @@ +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, uConexionOSC; + +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; + TabSheet1: TTabSheet; + frConexionOSC1: TfrConexionOSC; + 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 asignación 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; + 2 : FPaginaActual := frConexionOSC1; + end; + + if Assigned(FPaginaActual) then + FPaginaActual.Init; + + Self.Update; +end; + +end. diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.dfm b/Source/Servidor/Configuracion/uFrameConfiguracion.dfm new file mode 100644 index 00000000..71b4e24d --- /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 00000000..c03ed29b --- /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_Server.bdsproj b/Source/Servidor/FactuGES_Server.bdsproj new file mode 100644 index 00000000..000371ba --- /dev/null +++ b/Source/Servidor/FactuGES_Server.bdsproj @@ -0,0 +1,501 @@ + + + + + + + + + + + + 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 + + + + 3 + 0 + 1 + False + False + False + 16384 + 1048576 + 4194304 + + False + + + ..\..\Output\Debug\Servidor + + + + ..\DataAbstract_D10\Lib + 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 + + + + $00000000 + + + + True + False + 2 + 0 + 4 + 0 + False + False + False + False + False + 3081 + 1252 + + + + + 2.0.4.0 + + + + + + 2.0.3.0 + + miércoles, 06 de junio de 2007 18:30 + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + False + + diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr new file mode 100644 index 00000000..ee3431c2 --- /dev/null +++ b/Source/Servidor/FactuGES_Server.dpr @@ -0,0 +1,123 @@ +program FactuGES_Server; + +{#ROGEN:..\Servicios\FactuGES.rodl} // RemObjects: Careful, do not remove! + +uses + uROComInit, + 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}, + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas', + srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService}, + uDatabaseUtils in 'Utiles\uDatabaseUtils.pas', + srvLogin_Impl in '..\Servicios\srvLogin_Impl.pas', + srvEmpresas_Impl in '..\Modulos\Empresas\Servidor\srvEmpresas_Impl.pas', + uSesionesUtils in 'Utiles\uSesionesUtils.pas', + uUsersManager in 'uUsersManager.pas', + uServerAppUtils in 'Utiles\uServerAppUtils.pas', + uBizAgentesServer in '..\Modulos\Contactos\Model\uBizAgentesServer.pas', + uBusinessUtils in 'Utiles\uBusinessUtils.pas', + uBizContactosServer in '..\Modulos\Contactos\Model\uBizContactosServer.pas', + uBizClientesServer in '..\Modulos\Contactos\Model\uBizClientesServer.pas', + uBizProveedoresServer in '..\Modulos\Contactos\Model\uBizProveedoresServer.pas', + srvFacturasCliente_Impl in '..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas' {srvFacturasCliente: TDARemoteService}, + uRestriccionesUsuarioUtils in 'Utiles\uRestriccionesUsuarioUtils.pas', + uRptFacturasCliente_Server in '..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas' {RptFacturasCliente: TDataModule}, + srvPedidosProveedor_Impl in '..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas' {srvPedidosProveedor: TDARemoteService}, + uReferenciasUtils in 'Utiles\uReferenciasUtils.pas', + uBizFacturasClienteServer in '..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas', + uRptPedidosProveedor_Server in '..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas' {RptPedidosProveedor: TDataModule}, + srvConfiguracion_Impl in '..\Servicios\srvConfiguracion_Impl.pas' {srvConfiguracion: TDARemoteService}, + srvAlmacenes_Impl in '..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas' {srvAlmacenes: TDARemoteService}, + srvArticulos_Impl in '..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas' {srvArticulos: TDARemoteService}, + srvInventario_Impl in '..\Modulos\Inventario\Servidor\srvInventario_Impl.pas' {srvInventario: TDARemoteService}, + srvPedidosCliente_Impl in '..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas' {srvPedidosCliente: TDARemoteService}, + schAlmacenesClient_Intf in '..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas', + schAlmacenesServer_Intf in '..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas', + srvFamilias_Impl in '..\Modulos\Familias\Servidor\srvFamilias_Impl.pas' {srvFamilias: TDARemoteService}, + schFamiliasClient_Intf in '..\Modulos\Familias\Model\schFamiliasClient_Intf.pas', + schFamiliasServer_Intf in '..\Modulos\Familias\Model\schFamiliasServer_Intf.pas', + schEmpresasClient_Intf in '..\Modulos\Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in '..\Modulos\Empresas\Model\schEmpresasServer_Intf.pas', + schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', + schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', + schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas', + schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas', + uRptPedidosCliente_Server in '..\Modulos\Pedidos de cliente\Reports\uRptPedidosCliente_Server.pas' {RptPedidosCliente: TDataModule}, + srvAlbaranesCliente_Impl in '..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas' {srvAlbaranesCliente: TDARemoteService}, + srvAlbaranesProveedor_Impl in '..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas' {srvAlbaranesProveedor: TDARemoteService}, + uRptAlbaranesCliente_Server in '..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas' {RptAlbaranesCliente: TDataModule}, + schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', + schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas', + srvFormasPago_Impl in '..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas' {srvFormasPago: TDARemoteService}, + srvTiposIVA_Impl in '..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas' {srvTiposIVA: TDARemoteService}, + schTiposIVAClient_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas', + schTiposIVAServer_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas', + schFormasPagoServer_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas', + schFormasPagoClient_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas', + schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas', + schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas', + uBizPedidosClienteServer in '..\Modulos\Pedidos de cliente\Model\uBizPedidosClienteServer.pas', + uBizAlbaranClienteServer in '..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas', + uBizPedidosProveedorServer in '..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas', + uBizAlbaranProveedorServer in '..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS', + srvRecibosCliente_Impl in '..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas' {srvRecibosCliente: TDARemoteService}, + srvRemesasCliente_Impl in '..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas' {srvRemesasCliente: TDARemoteService}, + schRemesasClienteClient_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas', + schRemesasClienteServer_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas', + uBizRemesasClienteServer in '..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas', + uRptRemesasCliente_Server in '..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas' {RptRemesasCliente: TDataModule}, + uRptRecibosCliente_Server in '..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas' {RptRecibosCliente: TDataModule}, + srvComisiones_Impl in '..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas' {srvComisiones: TDARemoteService}, + schComisionesClient_Intf in '..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas', + schComisionesServer_Intf in '..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas', + srvTiendaWeb_Impl in '..\Modulos\Tienda web\Servidor\srvTiendaWeb_Impl.pas', + uBizTiendaWebServer in '..\Modulos\Tienda web\Model\uBizTiendaWebServer.pas', + uRptComisiones_Server in '..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas' {RptComisiones: TDataModule}, + uBizComisionesServer in '..\Modulos\Comisiones\Model\uBizComisionesServer.pas', + schReportServer_Intf in '..\Modulos\Comisiones\Model\schReportServer_Intf.pas', + schReportClient_Intf in '..\Modulos\Comisiones\Model\schReportClient_Intf.pas', + schTiendaWebClient_Intf in '..\Modulos\Tienda web\Model\schTiendaWebClient_Intf.pas', + schTiendaWebServer_Intf in '..\Modulos\Tienda web\Model\schTiendaWebServer_Intf.pas', + schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas', + schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas', + srvFacturasProveedor_Impl in '..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas' {srvFacturasProveedor: TDARemoteService}, + srvRecibosProveedor_Impl in '..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas' {srvRecibosProveedor: TDARemoteService}, + schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas', + schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', + uBizFacturasProveedorServer in '..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas', + uBizOscAddressBookServer in '..\Modulos\Tienda web\Model\uBizOscAddressBookServer.pas', + uBizOscCustomerServer in '..\Modulos\Tienda web\Model\uBizOscCustomerServer.pas', + uBizOscManufacturerServer in '..\Modulos\Tienda web\Model\uBizOscManufacturerServer.pas', + uBizOscProductServer in '..\Modulos\Tienda web\Model\uBizOscProductServer.pas', + uConexionOSC in 'Configuracion\uConexionOSC.pas' {frConexionOSC: TFrame}, + uTiendaWebUtils in 'Utiles\uTiendaWebUtils.pas', + uBizOscOrderServer in '..\Modulos\Tienda web\Model\uBizOscOrderServer.pas', + schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', + schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas', + schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', + schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas', + schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas', + schPedidosClienteClient_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas', + schPedidosClienteServer_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas', + schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', + schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas'; + +{$R *.res} +{$R ..\Servicios\RODLFile.res} + +begin + Application.Initialize; + Application.Title := 'FactuGES (Servidor)'; + Application.CreateForm(TfServerForm, fServerForm); + Application.CreateForm(TdmServer, dmServer); + Application.Run; + Application.Terminate; +end. diff --git a/Source/Servidor/FactuGES_Server.drc b/Source/Servidor/FactuGES_Server.drc new file mode 100644 index 00000000..063a8bc1 --- /dev/null +++ b/Source/Servidor/FactuGES_Server.drc @@ -0,0 +1,2476 @@ +/* VER180 + Generated by the Borland 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 TeeConst_TeeMsg_ValuesBar 64304 +#define TeeConst_TeeMsg_ValuesAngle 64305 +#define TeeConst_TeeMsg_ValuesGanttStart 64306 +#define TeeConst_TeeMsg_ValuesGanttEnd 64307 +#define TeeConst_TeeMsg_ValuesGanttNextTask 64308 +#define TeeConst_TeeMsg_ValuesBubbleRadius 64309 +#define TeeConst_TeeMsg_ValuesArrowEndX 64310 +#define TeeConst_TeeMsg_ValuesArrowEndY 64311 +#define OleConst_SLinkProperties 64312 +#define OleConst_SInvalidLinkSource 64313 +#define OleConst_SCannotBreakLink 64314 +#define OleConst_SEmptyContainer 64315 +#define OleConst_SInvalidVerb 64316 +#define OleConst_SPropDlgCaption 64317 +#define OleConst_SInvalidStreamFormat 64318 +#define TeeConst_TeeMsg_FunctionMultiply 64320 +#define TeeConst_TeeMsg_FunctionDivide 64321 +#define TeeConst_TeeMsg_FunctionHigh 64322 +#define TeeConst_TeeMsg_FunctionLow 64323 +#define TeeConst_TeeMsg_FunctionAverage 64324 +#define TeeConst_TeeMsg_GalleryShape 64325 +#define TeeConst_TeeMsg_GalleryBubble 64326 +#define TeeConst_TeeMsg_DefaultFontName 64327 +#define TeeConst_TeeMsg_CheckPointerSize 64328 +#define TeeConst_TeeMsg_FunctionPeriod 64329 +#define TeeConst_TeeMsg_PieOther 64330 +#define TeeConst_TeeMsg_ShapeGallery1 64331 +#define TeeConst_TeeMsg_ShapeGallery2 64332 +#define TeeConst_TeeMsg_ValuesX 64333 +#define TeeConst_TeeMsg_ValuesY 64334 +#define TeeConst_TeeMsg_ValuesPie 64335 +#define TeeConst_TeeMsg_GalleryArrow 64336 +#define TeeConst_TeeMsg_GalleryGantt 64337 +#define TeeConst_TeeMsg_GanttSample1 64338 +#define TeeConst_TeeMsg_GanttSample2 64339 +#define TeeConst_TeeMsg_GanttSample3 64340 +#define TeeConst_TeeMsg_GanttSample4 64341 +#define TeeConst_TeeMsg_GanttSample5 64342 +#define TeeConst_TeeMsg_GanttSample6 64343 +#define TeeConst_TeeMsg_GanttSample7 64344 +#define TeeConst_TeeMsg_GanttSample8 64345 +#define TeeConst_TeeMsg_GanttSample9 64346 +#define TeeConst_TeeMsg_GanttSample10 64347 +#define TeeConst_TeeMsg_DefaultFontSize 64348 +#define TeeConst_TeeMsg_DefaultGalleryFontSize 64349 +#define TeeConst_TeeMsg_FunctionAdd 64350 +#define TeeConst_TeeMsg_FunctionSubtract 64351 +#define TeeConst_TeeMsg_GalleryBar 64352 +#define TeeConst_TeeMsg_GalleryHorizBar 64353 +#define TeeConst_TeeMsg_GalleryPie 64354 +#define TeeConst_TeeMsg_GalleryFastLine 64355 +#define TeeConst_TeeMsg_Rotation 64356 +#define TeeConst_TeeMsg_PieSample1 64357 +#define TeeConst_TeeMsg_PieSample2 64358 +#define TeeConst_TeeMsg_PieSample3 64359 +#define TeeConst_TeeMsg_PieSample4 64360 +#define TeeConst_TeeMsg_PieSample5 64361 +#define TeeConst_TeeMsg_PieSample6 64362 +#define TeeConst_TeeMsg_PieSample7 64363 +#define TeeConst_TeeMsg_PieSample8 64364 +#define TeeConst_TeeMsg_GalleryChartName 64365 +#define TeeConst_TeeMsg_GalleryStandard 64366 +#define TeeConst_TeeMsg_GalleryFunctions 64367 +#define TeeConst_TeeMsg_AxisMinMax 64368 +#define TeeConst_TeeMsg_AxisMaxMin 64369 +#define TeeConst_TeeMsg_AxisLogBase 64370 +#define TeeConst_TeeMsg_MaxPointsPerPage 64371 +#define TeeConst_TeeMsg_3dPercent 64372 +#define TeeConst_TeeMsg_CircularSeries 64373 +#define TeeConst_TeeMsg_BarWidthPercent 64374 +#define TeeConst_TeeMsg_BarOffsetPercent 64375 +#define TeeConst_TeeMsg_DefaultPercentOf 64376 +#define TeeConst_TeeMsg_DefPercentFormat 64377 +#define TeeConst_TeeMsg_DefValueFormat 64378 +#define TeeConst_TeeMsg_AxisTitle 64379 +#define TeeConst_TeeMsg_AxisLabels 64380 +#define TeeConst_TeeMsg_GalleryLine 64381 +#define TeeConst_TeeMsg_GalleryPoint 64382 +#define TeeConst_TeeMsg_GalleryArea 64383 +#define MidConst_SNoEditsAllowed 64384 +#define MidConst_SNoDeletesAllowed 64385 +#define MidConst_SNoInsertsAllowed 64386 +#define MidConst_SConnectionMissing 64387 +#define MidConst_SNoCircularConnection 64388 +#define TeeConst_TeeMsg_LegendTopPos 64389 +#define TeeConst_TeeMsg_LegendFirstValue 64390 +#define TeeConst_TeeMsg_LegendColorWidth 64391 +#define TeeConst_TeeMsg_SeriesSetDataSource 64392 +#define TeeConst_TeeMsg_SeriesInvDataSource 64393 +#define TeeConst_TeeMsg_FillSample 64394 +#define TeeConst_TeeMsg_Angle 64395 +#define TeeConst_TeeMsg_AxisLogDateTime 64396 +#define TeeConst_TeeMsg_AxisLogNotPositive 64397 +#define TeeConst_TeeMsg_AxisLabelSep 64398 +#define TeeConst_TeeMsg_AxisIncrementNeg 64399 +#define SqlConst_SNOTIMPLEMENTED 64400 +#define SqlConst_SDRIVERINCOMPATIBLE 64401 +#define MidConst_SNoDataProvider 64402 +#define MidConst_SInvalidDataPacket 64403 +#define MidConst_SRefreshError 64404 +#define MidConst_SNoCircularReference 64405 +#define MidConst_SErrorLoadingMidas 64406 +#define MidConst_SCannotCreateDataSet 64407 +#define MidConst_SNoConnectToBroker 64408 +#define MidConst_SNoParentConnection 64409 +#define MidConst_SInvalidOptParamType 64410 +#define MidConst_SConstraintFailed 64411 +#define MidConst_SField 64412 +#define MidConst_SRecConstFail 64413 +#define MidConst_SFieldConstFail 64414 +#define MidConst_SDefExprFail 64415 +#define SqlConst_SSQLPARAMNOTSET 64416 +#define SqlConst_SINVALIDUSRPASS 64417 +#define SqlConst_SINVALIDPRECISION 64418 +#define SqlConst_SINVALIDLEN 64419 +#define SqlConst_SINVALIDXISOLEVEL 64420 +#define SqlConst_SINVALIDTXNID 64421 +#define SqlConst_SDUPLICATETXNID 64422 +#define SqlConst_SDRIVERRESTRICTED 64423 +#define SqlConst_SLOCALTRANSACTIVE 64424 +#define SqlConst_SMULTIPLETRANSNOTENABLED 64425 +#define SqlConst_SCONNECTIONFAILED 64426 +#define SqlConst_SDRIVERINITFAILED 64427 +#define SqlConst_SOPTLOCKFAILED 64428 +#define SqlConst_SINVALIDREF 64429 +#define SqlConst_SNOTABLE 64430 +#define SqlConst_SMISSINGPARAMINSQL 64431 +#define VDBConsts_SEditRecord 64432 +#define VDBConsts_SPostEdit 64433 +#define VDBConsts_SCancelEdit 64434 +#define VDBConsts_SRefreshRecord 64435 +#define VDBConsts_SRemoteLogin 64436 +#define SqlConst_SNOERROR 64437 +#define SqlConst_SWARNING 64438 +#define SqlConst_SNOMEMORY 64439 +#define SqlConst_SINVALIDFLDTYPE 64440 +#define SqlConst_SINVALIDHNDL 64441 +#define SqlConst_SNOTSUPPORTED 64442 +#define SqlConst_SINVALIDTIME 64443 +#define SqlConst_SINVALIDXLATION 64444 +#define SqlConst_SOUTOFRANGE 64445 +#define SqlConst_SINVALIDPARAM 64446 +#define SqlConst_SEOF 64447 +#define cxEditConsts_scxRegExprHexNumberExpected 64448 +#define cxEditConsts_scxRegExprMissing 64449 +#define cxEditConsts_scxRegExprUnnecessary 64450 +#define cxEditConsts_scxRegExprIncorrectSpace 64451 +#define cxEditConsts_scxRegExprNotCompiled 64452 +#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64453 +#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64454 +#define cxEditConsts_scxMaskEditRegExprError 64455 +#define cxEditConsts_scxMaskEditInvalidEditValue 64456 +#define cxEditConsts_cxSSpinEditInvalidNumericValue 64457 +#define VDBConsts_SFirstRecord 64458 +#define VDBConsts_SPriorRecord 64459 +#define VDBConsts_SNextRecord 64460 +#define VDBConsts_SLastRecord 64461 +#define VDBConsts_SInsertRecord 64462 +#define VDBConsts_SDeleteRecord 64463 +#define cxEditConsts_scxSEditRepositoryTimeItem 64464 +#define cxEditConsts_scxRegExprLine 64465 +#define cxEditConsts_scxRegExprChar 64466 +#define cxEditConsts_scxRegExprNotAssignedSourceStream 64467 +#define cxEditConsts_scxRegExprEmptySourceStream 64468 +#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64469 +#define cxEditConsts_scxRegExprCantUseStarQuantifier 64470 +#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64471 +#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64472 +#define cxEditConsts_scxRegExprIllegalSymbol 64473 +#define cxEditConsts_scxRegExprIllegalQuantifier 64474 +#define cxEditConsts_scxRegExprIllegalIntegerValue 64475 +#define cxEditConsts_scxRegExprTooBigReferenceNumber 64476 +#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64477 +#define cxEditConsts_scxRegExprSubrangeOrder 64478 +#define cxEditConsts_scxRegExprHexNumberExpected0 64479 +#define cxEditConsts_scxSEditRepositoryButtonItem 64480 +#define cxEditConsts_scxSEditRepositoryCalcItem 64481 +#define cxEditConsts_scxSEditRepositoryCheckBoxItem 64482 +#define cxEditConsts_scxSEditRepositoryComboBoxItem 64483 +#define cxEditConsts_scxSEditRepositoryCurrencyItem 64484 +#define cxEditConsts_scxSEditRepositoryDateItem 64485 +#define cxEditConsts_scxSEditRepositoryHyperLinkItem 64486 +#define cxEditConsts_scxSEditRepositoryImageComboBoxItem 64487 +#define cxEditConsts_scxSEditRepositoryImageItem 64488 +#define cxEditConsts_scxSEditRepositoryMaskItem 64489 +#define cxEditConsts_scxSEditRepositoryMemoItem 64490 +#define cxEditConsts_scxSEditRepositoryMRUItem 64491 +#define cxEditConsts_scxSEditRepositoryPopupItem 64492 +#define cxEditConsts_scxSEditRepositorySpinItem 64493 +#define cxEditConsts_scxSEditRepositoryRadioGroupItem 64494 +#define cxEditConsts_scxSEditRepositoryTextItem 64495 +#define cxEditConsts_cxSDateThursday 64496 +#define cxEditConsts_cxSDateFriday 64497 +#define cxEditConsts_cxSDateSaturday 64498 +#define cxEditConsts_cxSDateFirst 64499 +#define cxEditConsts_cxSDateSecond 64500 +#define cxEditConsts_cxSDateThird 64501 +#define cxEditConsts_cxSDateFourth 64502 +#define cxEditConsts_cxSDateFifth 64503 +#define cxEditConsts_cxSDateSixth 64504 +#define cxEditConsts_cxSDateSeventh 64505 +#define cxEditConsts_cxSDateBOM 64506 +#define cxEditConsts_cxSDateEOM 64507 +#define cxEditConsts_cxSDateNow 64508 +#define cxEditConsts_scxSCalcError 64509 +#define cxEditConsts_scxSHyperLinkPrefix 64510 +#define cxEditConsts_scxSEditRepositoryBlobItem 64511 +#define cxEditConsts_cxSMenuItemCaptionPaste 64512 +#define cxEditConsts_cxSMenuItemCaptionDelete 64513 +#define cxEditConsts_cxSMenuItemCaptionLoad 64514 +#define cxEditConsts_cxSMenuItemCaptionSave 64515 +#define cxEditConsts_cxSDatePopupClear 64516 +#define cxEditConsts_cxSDatePopupNow 64517 +#define cxEditConsts_cxSDatePopupOK 64518 +#define cxEditConsts_cxSDatePopupToday 64519 +#define cxEditConsts_cxSDateError 64520 +#define cxEditConsts_cxSDateToday 64521 +#define cxEditConsts_cxSDateYesterday 64522 +#define cxEditConsts_cxSDateTomorrow 64523 +#define cxEditConsts_cxSDateSunday 64524 +#define cxEditConsts_cxSDateMonday 64525 +#define cxEditConsts_cxSDateTuesday 64526 +#define cxEditConsts_cxSDateWednesday 64527 +#define cxEditConsts_cxSEditTimeConvertError 64528 +#define cxEditConsts_cxSEditValidateErrorText 64529 +#define cxEditConsts_cxSEditValueOutOfBounds 64530 +#define cxEditConsts_cxSEditCheckBoxChecked 64531 +#define cxEditConsts_cxSEditCheckBoxGrayed 64532 +#define cxEditConsts_cxSEditCheckBoxUnchecked 64533 +#define cxEditConsts_cxSRadioGroupDefaultCaption 64534 +#define cxEditConsts_cxSBlobButtonOK 64535 +#define cxEditConsts_cxSBlobButtonCancel 64536 +#define cxEditConsts_cxSBlobButtonClose 64537 +#define cxEditConsts_cxSBlobMemo 64538 +#define cxEditConsts_cxSBlobMemoEmpty 64539 +#define cxEditConsts_cxSBlobPicture 64540 +#define cxEditConsts_cxSBlobPictureEmpty 64541 +#define cxEditConsts_cxSMenuItemCaptionCut 64542 +#define cxEditConsts_cxSMenuItemCaptionCopy 64543 +#define pnglang_EPNGUnknownCompressionText 64544 +#define pnglang_EPNGUnknownInterlaceText 64545 +#define pnglang_EPNGCannotAssignChunkText 64546 +#define pnglang_EPNGUnexpectedEndText 64547 +#define pnglang_EPNGNoImageDataText 64548 +#define pnglang_EPNGCannotChangeSizeText 64549 +#define pnglang_EPNGCannotAddChunkText 64550 +#define pnglang_EPNGCannotAddInvalidImageText 64551 +#define pnglang_EPNGOutMemoryText 64552 +#define pnglang_EPNGHeaderNotPresentText 64553 +#define cxDataConsts_cxSDataReadError 64554 +#define cxDataConsts_cxSDataWriteError 64555 +#define cxEditConsts_cxSEditDateConvertError 64556 +#define cxEditConsts_cxSEditInvalidRepositoryItem 64557 +#define cxEditConsts_cxSEditNumericValueConvertError 64558 +#define cxEditConsts_cxSEditPopupCircularReferencingError 64559 +#define ADOConst_SConnectionRequired 64560 +#define ADOConst_SCantRequery 64561 +#define ADOConst_SNoFilterOptions 64562 +#define ADOConst_SRecordsetNotOpen 64563 +#define ADOConst_sNameAttr 64564 +#define ADOConst_sValueAttr 64565 +#define pnglang_EPngInvalidCRCText 64566 +#define pnglang_EPNGInvalidIHDRText 64567 +#define pnglang_EPNGMissingMultipleIDATText 64568 +#define pnglang_EPNGZLIBErrorText 64569 +#define pnglang_EPNGInvalidPaletteText 64570 +#define pnglang_EPNGInvalidFileHeaderText 64571 +#define pnglang_EPNGIHDRNotFirstText 64572 +#define pnglang_EPNGSizeExceedsText 64573 +#define pnglang_EPNGUnknownPalEntryText 64574 +#define pnglang_EPNGUnknownCriticalChunkText 64575 +#define IBSQLMonitor_StrPlan 64576 +#define IBSQLMonitor_StrPlanCantRetrive 64577 +#define IBSQLMonitor_StrCommitHardComm 64578 +#define IBSQLMonitor_StrCommitRetaining 64579 +#define IBSQLMonitor_StrRollback 64580 +#define IBSQLMonitor_StrRollbackRetainin 64581 +#define IBSQLMonitor_StrStartTransaction 64582 +#define IBSQLMonitor_StrApplication 64583 +#define ADOConst_SMissingConnection 64584 +#define ADOConst_SNoDetailFilter 64585 +#define ADOConst_SBookmarksRequired 64586 +#define ADOConst_SMissingCommandText 64587 +#define ADOConst_SNoResultSet 64588 +#define ADOConst_SADOCreateError 64589 +#define ADOConst_SEventsNotSupported 64590 +#define ADOConst_SUsupportedFieldType 64591 +#define IBXConst_SLoginPromptFailure 64592 +#define IBXConst_SIB70feature 64593 +#define IBXConst_SIB71feature 64594 +#define IBSQLMonitor_StrConnect 64595 +#define IBSQLMonitor_StrDisconnect 64596 +#define IBSQLMonitor_StrMisc 64597 +#define IBSQLMonitor_StrError 64598 +#define IBSQLMonitor_StrAttach 64599 +#define IBSQLMonitor_StrDetach 64600 +#define IBSQLMonitor_StrQuery 64601 +#define IBSQLMonitor_StrStart 64602 +#define IBSQLMonitor_StrExecute 64603 +#define IBSQLMonitor_StrNULL 64604 +#define IBSQLMonitor_StrBLOB 64605 +#define IBSQLMonitor_StrFetch 64606 +#define IBSQLMonitor_StrPrepare 64607 +#define IBXConst_SNoDestinationDirectory 64608 +#define IBXConst_SNosourceDirectory 64609 +#define IBXConst_SNoUninstallFile 64610 +#define IBXConst_SOptionNeedsClient 64611 +#define IBXConst_SOptionNeedsServer 64612 +#define IBXConst_SInvalidOption 64613 +#define IBXConst_SInvalidOnErrorResult 64614 +#define IBXConst_SInvalidOnStatusResult 64615 +#define IBXConst_SDPBConstantUnknownEx 64616 +#define IBXConst_STPBConstantUnknownEx 64617 +#define IBXConst_SUnknownPlan 64618 +#define IBXConst_SFieldSizeMismatch 64619 +#define IBXConst_SEventAlreadyRegistered 64620 +#define IBXConst_SStringTooLarge 64621 +#define IBXConst_SNoTimers 64622 +#define IBXConst_SIB65feature 64623 +#define IBXConst_SServiceActive 64624 +#define IBXConst_SServiceInActive 64625 +#define IBXConst_SServerNameMissing 64626 +#define IBXConst_SQueryParamsError 64627 +#define IBXConst_SStartParamsError 64628 +#define IBXConst_SOutputParsingError 64629 +#define IBXConst_SUseSpecificProcedures 64630 +#define IBXConst_SSQLMonitorAlreadyPresent 64631 +#define IBXConst_SCantPrintValue 64632 +#define IBXConst_SEOFReached 64633 +#define IBXConst_SEOFInComment 64634 +#define IBXConst_SEOFInString 64635 +#define IBXConst_SParamNameExpected 64636 +#define IBXConst_SSuccess 64637 +#define IBXConst_SDelphiException 64638 +#define IBXConst_SNoOptionsSet 64639 +#define IBXConst_SNoRecordsAffected 64640 +#define IBXConst_SNoTableName 64641 +#define IBXConst_SCannotCreatePrimaryIndex 64642 +#define IBXConst_SCannotDropSystemIndex 64643 +#define IBXConst_STableNameMismatch 64644 +#define IBXConst_SIndexFieldMissing 64645 +#define IBXConst_SInvalidCancellation 64646 +#define IBXConst_SInvalidEvent 64647 +#define IBXConst_SMaximumEvents 64648 +#define IBXConst_SNoEventsRegistered 64649 +#define IBXConst_SInvalidQueueing 64650 +#define IBXConst_SInvalidRegistration 64651 +#define IBXConst_SInvalidBatchMove 64652 +#define IBXConst_SSQLDialectInvalid 64653 +#define IBXConst_SSPBConstantNotSupported 64654 +#define IBXConst_SSPBConstantUnknown 64655 +#define IBXConst_SCannotCreateSharedResource 64656 +#define IBXConst_SWindowsAPIError 64657 +#define IBXConst_SColumnListsDontMatch 64658 +#define IBXConst_SColumnTypesDontMatch 64659 +#define IBXConst_SCantEndSharedTransaction 64660 +#define IBXConst_SFieldUnsupportedType 64661 +#define IBXConst_SCircularDataLink 64662 +#define IBXConst_SEmptySQLStatement 64663 +#define IBXConst_SIsASelectStatement 64664 +#define IBXConst_SRequiredParamNotSet 64665 +#define IBXConst_SNoStoredProcName 64666 +#define IBXConst_SIsAExecuteProcedure 64667 +#define IBXConst_SUpdateFailed 64668 +#define IBXConst_SNotCachedUpdates 64669 +#define IBXConst_SNotLiveRequest 64670 +#define IBXConst_SNoProvider 64671 +#define IBXConst_SEmptyQuery 64672 +#define IBXConst_SCannotOpenNonSQLSelect 64673 +#define IBXConst_SNoFieldAccess 64674 +#define IBXConst_SFieldReadOnly 64675 +#define IBXConst_SFieldNotFound 64676 +#define IBXConst_SNotEditing 64677 +#define IBXConst_SCannotInsert 64678 +#define IBXConst_SCannotPost 64679 +#define IBXConst_SCannotUpdate 64680 +#define IBXConst_SCannotDelete 64681 +#define IBXConst_SCannotRefresh 64682 +#define IBXConst_SBufferNotSet 64683 +#define IBXConst_SCircularReference 64684 +#define IBXConst_SSQLParseError 64685 +#define IBXConst_SUserAbort 64686 +#define IBXConst_SDataSetUniDirectional 64687 +#define IBXConst_SXSQLDAIndexOutOfRange 64688 +#define IBXConst_SXSQLDANameDoesNotExist 64689 +#define IBXConst_SEOF 64690 +#define IBXConst_SBOF 64691 +#define IBXConst_SInvalidStatementHandle 64692 +#define IBXConst_SSQLOpen 64693 +#define IBXConst_SSQLClosed 64694 +#define IBXConst_SDatasetOpen 64695 +#define IBXConst_SDatasetClosed 64696 +#define IBXConst_SUnknownSQLDataType 64697 +#define IBXConst_SInvalidColumnIndex 64698 +#define IBXConst_SInvalidParamColumnIndex 64699 +#define IBXConst_SInvalidDataConversion 64700 +#define IBXConst_SColumnIsNotNullable 64701 +#define IBXConst_SBlobCannotBeRead 64702 +#define IBXConst_SBlobCannotBeWritten 64703 +#define IBXConst_SOperationCancelled 64704 +#define IBXConst_SDPBConstantNotSupported 64705 +#define IBXConst_SDPBConstantUnknown 64706 +#define IBXConst_STPBConstantNotSupported 64707 +#define IBXConst_STPBConstantUnknown 64708 +#define IBXConst_SDatabaseClosed 64709 +#define IBXConst_SDatabaseOpen 64710 +#define IBXConst_SDatabaseNameMissing 64711 +#define IBXConst_SNotInTransaction 64712 +#define IBXConst_SInTransaction 64713 +#define IBXConst_STimeoutNegative 64714 +#define IBXConst_SNoDatabasesInTransaction 64715 +#define IBXConst_SUpdateWrongDB 64716 +#define IBXConst_SUpdateWrongTR 64717 +#define IBXConst_SDatabaseNotAssigned 64718 +#define IBXConst_STransactionNotAssigned 64719 +#define uDARes_err_DARDMInvalidSchema 64720 +#define uDARes_err_DARDMUnassignedAdapter 64721 +#define uDARes_err_DARDMConnectionIsNotAssigned 64722 +#define uDARes_err_DARDMCannotFindProxessorForDelta 64723 +#define uDARes_err_NeedShareMem 64724 +#define uDARes_err_ExecuteSQLCommandNotAllowed 64725 +#define IBXConst_SUnknownError 64726 +#define IBXConst_SInterBaseMissing 64727 +#define IBXConst_SInterBaseInstallMissing 64728 +#define IBXConst_SIB60feature 64729 +#define IBXConst_SNotSupported 64730 +#define IBXConst_SNotPermitted 64731 +#define IBXConst_SFileAccessError 64732 +#define IBXConst_SConnectionTimeout 64733 +#define IBXConst_SCannotSetDatabase 64734 +#define IBXConst_SCannotSetTransaction 64735 +#define uDARes_err_FieldTypeNotSupported 64736 +#define uDARes_err_InvalidDataset 64737 +#define uDARes_err_CannotFindItem 64738 +#define uDARes_err_DriverAlreadyLoaded 64739 +#define uDARes_err_InvalidDLL 64740 +#define uDARes_err_UnknownDriver 64741 +#define uDARes_err_UnknownParameter 64742 +#define uDARes_err_FieldIsNotBound 64743 +#define uDARes_err_CannotFindField 64744 +#define uDARes_err_LoadPackageFailed 64745 +#define uDARes_err_InvalidDriverReference 64746 +#define uDARes_err_CannotFindStatement 64747 +#define uDARes_err_CannotFindDefaultItem 64748 +#define uDARes_err_PoolIsNotEmpty 64749 +#define uDARes_err_MaxPoolSizeReached 64750 +#define uDARes_err_LAMEDataset 64751 +#define DBConsts_SProviderSQLNotSupported 64752 +#define DBConsts_SProviderExecuteNotSupported 64753 +#define DBConsts_SExprNoAggOnCalcs 64754 +#define DBConsts_SDataSetUnidirectional 64755 +#define DBConsts_SUnassignedVar 64756 +#define DBConsts_SRecordNotFound 64757 +#define DBConsts_SBcdOverflow 64758 +#define DBConsts_SInvalidBcdValue 64759 +#define DBConsts_SInvalidFormatType 64760 +#define DBConsts_SCouldNotParseTimeStamp 64761 +#define DBConsts_SInvalidSqlTimeStamp 64762 +#define uDARes_err_ChangeLogAlreadyStarted 64763 +#define uDARes_err_NotAttachedToDataTable 64764 +#define uDARes_err_DriverProcAlreadyRegistered 64765 +#define uDARes_err_DriverManagerAlreadyCreated 64766 +#define uDARes_err_DriverManagerNotAssigned 64767 +#define DBConsts_SExprIncorrect 64768 +#define DBConsts_SExprNothing 64769 +#define DBConsts_SExprTypeMis 64770 +#define DBConsts_SExprBadScope 64771 +#define DBConsts_SExprNoArith 64772 +#define DBConsts_SExprNotAgg 64773 +#define DBConsts_SExprBadConst 64774 +#define DBConsts_SExprNoAggFilter 64775 +#define DBConsts_SExprEmptyInList 64776 +#define DBConsts_SInvalidKeywordUse 64777 +#define DBConsts_STextFalse 64778 +#define DBConsts_STextTrue 64779 +#define DBConsts_SParameterNotFound 64780 +#define DBConsts_SInvalidVersion 64781 +#define DBConsts_SBadFieldType 64782 +#define DBConsts_SAggActive 64783 +#define DBConsts_SNotEditing 64784 +#define DBConsts_SDataSetClosed 64785 +#define DBConsts_SDataSetEmpty 64786 +#define DBConsts_SDataSetReadOnly 64787 +#define DBConsts_SNestedDataSetClass 64788 +#define DBConsts_SExprTermination 64789 +#define DBConsts_SExprNameError 64790 +#define DBConsts_SExprStringError 64791 +#define DBConsts_SExprInvalidChar 64792 +#define DBConsts_SExprNoLParen 64793 +#define DBConsts_SExprNoRParen 64794 +#define DBConsts_SExprNoRParenOrComma 64795 +#define DBConsts_SExprExpected 64796 +#define DBConsts_SExprBadField 64797 +#define DBConsts_SExprBadNullTest 64798 +#define DBConsts_SExprRangeError 64799 +#define DBConsts_SFieldOutOfRange 64800 +#define DBConsts_SFieldRequired 64801 +#define DBConsts_SDataSetMissing 64802 +#define DBConsts_SInvalidCalcType 64803 +#define DBConsts_SFieldReadOnly 64804 +#define DBConsts_SFieldIndexError 64805 +#define DBConsts_SNoFieldIndexes 64806 +#define DBConsts_SNotIndexField 64807 +#define DBConsts_SIndexFieldMissing 64808 +#define DBConsts_SNoIndexForFields 64809 +#define DBConsts_SIndexNotFound 64810 +#define DBConsts_SCircularDataLink 64811 +#define DBConsts_SLookupInfoError 64812 +#define DBConsts_SDataSourceChange 64813 +#define DBConsts_SNoNestedMasterSource 64814 +#define DBConsts_SDataSetOpen 64815 +#define DBConsts_SInvalidFieldSize 64816 +#define DBConsts_SInvalidFieldKind 64817 +#define DBConsts_SUnknownFieldType 64818 +#define DBConsts_SFieldNameMissing 64819 +#define DBConsts_SDuplicateFieldName 64820 +#define DBConsts_SFieldNotFound 64821 +#define DBConsts_SFieldAccessError 64822 +#define DBConsts_SFieldValueError 64823 +#define DBConsts_SFieldRangeError 64824 +#define DBConsts_SBcdFieldRangeError 64825 +#define DBConsts_SInvalidIntegerValue 64826 +#define DBConsts_SInvalidBoolValue 64827 +#define DBConsts_SInvalidFloatValue 64828 +#define DBConsts_SFieldTypeMismatch 64829 +#define DBConsts_SFieldSizeMismatch 64830 +#define DBConsts_SInvalidVarByteArray 64831 +#define JclResources_RsIntelCacheDescr79 64832 +#define JclResources_RsIntelCacheDescr7A 64833 +#define JclResources_RsIntelCacheDescr7B 64834 +#define JclResources_RsIntelCacheDescr7C 64835 +#define JclResources_RsIntelCacheDescr7D 64836 +#define JclResources_RsIntelCacheDescr7F 64837 +#define JclResources_RsIntelCacheDescr82 64838 +#define JclResources_RsIntelCacheDescr83 64839 +#define JclResources_RsIntelCacheDescr84 64840 +#define JclResources_RsIntelCacheDescr85 64841 +#define JclResources_RsIntelCacheDescr86 64842 +#define JclResources_RsIntelCacheDescr87 64843 +#define JclResources_RsIntelCacheDescrB0 64844 +#define JclResources_RsIntelCacheDescrB3 64845 +#define JclResources_RsIntelCacheDescrF0 64846 +#define JclResources_RsIntelCacheDescrF1 64847 +#define JclResources_RsIntelCacheDescr44 64848 +#define JclResources_RsIntelCacheDescr45 64849 +#define JclResources_RsIntelCacheDescr50 64850 +#define JclResources_RsIntelCacheDescr51 64851 +#define JclResources_RsIntelCacheDescr52 64852 +#define JclResources_RsIntelCacheDescr5B 64853 +#define JclResources_RsIntelCacheDescr5C 64854 +#define JclResources_RsIntelCacheDescr5D 64855 +#define JclResources_RsIntelCacheDescr60 64856 +#define JclResources_RsIntelCacheDescr66 64857 +#define JclResources_RsIntelCacheDescr67 64858 +#define JclResources_RsIntelCacheDescr68 64859 +#define JclResources_RsIntelCacheDescr70 64860 +#define JclResources_RsIntelCacheDescr71 64861 +#define JclResources_RsIntelCacheDescr72 64862 +#define JclResources_RsIntelCacheDescr78 64863 +#define JclResources_RsIntelCacheDescr03 64864 +#define JclResources_RsIntelCacheDescr04 64865 +#define JclResources_RsIntelCacheDescr06 64866 +#define JclResources_RsIntelCacheDescr08 64867 +#define JclResources_RsIntelCacheDescr0A 64868 +#define JclResources_RsIntelCacheDescr0C 64869 +#define JclResources_RsIntelCacheDescr22 64870 +#define JclResources_RsIntelCacheDescr23 64871 +#define JclResources_RsIntelCacheDescr25 64872 +#define JclResources_RsIntelCacheDescr29 64873 +#define JclResources_RsIntelCacheDescr2C 64874 +#define JclResources_RsIntelCacheDescr30 64875 +#define JclResources_RsIntelCacheDescr40 64876 +#define JclResources_RsIntelCacheDescr41 64877 +#define JclResources_RsIntelCacheDescr42 64878 +#define JclResources_RsIntelCacheDescr43 64879 +#define JclResources_RsRTTIBasedOn 64880 +#define JclResources_RsRTTIFloatType 64881 +#define JclResources_RsRTTIMethodKind 64882 +#define JclResources_RsRTTIParamCount 64883 +#define JclResources_RsRTTIReturnType 64884 +#define JclResources_RsRTTIMaxLen 64885 +#define JclResources_RsRTTIElSize 64886 +#define JclResources_RsRTTIElType 64887 +#define JclResources_RsRTTIElNeedCleanup 64888 +#define JclResources_RsRTTIVarType 64889 +#define JclResources_RsDeclarationFormat 64890 +#define JclResources_RsBlankSearchString 64891 +#define JclResources_RsSynchCreateEvent 64892 +#define JclResources_RsIntelCacheDescr00 64893 +#define JclResources_RsIntelCacheDescr01 64894 +#define JclResources_RsIntelCacheDescr02 64895 +#define JclResources_RsRTTIVirtualMethod 64896 +#define JclResources_RsRTTIIndex 64897 +#define JclResources_RsRTTIDefault 64898 +#define JclResources_RsRTTIName 64899 +#define JclResources_RsRTTIType 64900 +#define JclResources_RsRTTIFlags 64901 +#define JclResources_RsRTTIGUID 64902 +#define JclResources_RsRTTITypeKind 64903 +#define JclResources_RsRTTIOrdinalType 64904 +#define JclResources_RsRTTIMinValue 64905 +#define JclResources_RsRTTIMaxValue 64906 +#define JclResources_RsRTTINameList 64907 +#define JclResources_RsRTTIClassName 64908 +#define JclResources_RsRTTIParent 64909 +#define JclResources_RsRTTIPropCount 64910 +#define JclResources_RsRTTIUnitName 64911 +#define JclResources_RsRTTIValueOutOfRange 64912 +#define JclResources_RsRTTIUnknownIdentifier 64913 +#define JclResources_RsRTTIVar 64914 +#define JclResources_RsRTTIConst 64915 +#define JclResources_RsRTTIArrayOf 64916 +#define JclResources_RsRTTIOut 64917 +#define JclResources_RsRTTIOrdinal 64918 +#define JclResources_RsRTTITrue 64919 +#define JclResources_RsRTTIFalse 64920 +#define JclResources_RsRTTITypeError 64921 +#define JclResources_RsRTTITypeInfoAt 64922 +#define JclResources_RsRTTIPropRead 64923 +#define JclResources_RsRTTIPropWrite 64924 +#define JclResources_RsRTTIPropStored 64925 +#define JclResources_RsRTTIField 64926 +#define JclResources_RsRTTIStaticMethod 64927 +#define JvResources_RsGradientActiveCaption 64928 +#define JvResources_RsGradientInactiveCaption 64929 +#define JvResources_RsHotLight 64930 +#define JvResources_RsMenuBar 64931 +#define JvResources_RsMenuHighlight 64932 +#define JclResources_RsWin32Prefix 64933 +#define JclResources_RsFileUtilsNoVersionInfo 64934 +#define JclResources_RsCreateFileMapping 64935 +#define JclResources_RsCreateFileMappingView 64936 +#define JclResources_RsViewNeedsMapping 64937 +#define JclResources_RsFailedToObtainSize 64938 +#define JclResources_RsUnableToOpenKeyRead 64939 +#define JclResources_RsUnableToOpenKeyWrite 64940 +#define JclResources_RsUnableToAccessValue 64941 +#define JclResources_RsWrongDataType 64942 +#define JclResources_RsInconsistentPath 64943 +#define JvResources_RsClCaptionText 64944 +#define JvResources_RsClActiveBorder 64945 +#define JvResources_RsClInactiveBorder 64946 +#define JvResources_RsClAppWorkSpace 64947 +#define JvResources_RsClHighlight 64948 +#define JvResources_RsClHighlightText 64949 +#define JvResources_RsClBtnFace 64950 +#define JvResources_RsClBtnShadow 64951 +#define JvResources_RsClGrayText 64952 +#define JvResources_RsClBtnText 64953 +#define JvResources_RsClInactiveCaptionText 64954 +#define JvResources_RsClBtnHighlight 64955 +#define JvResources_RsCl3DDkShadow 64956 +#define JvResources_RsCl3DLight 64957 +#define JvResources_RsClInfoText 64958 +#define JvResources_RsClInfoBk 64959 +#define JvResources_RsClRose 64960 +#define JvResources_RsClTan 64961 +#define JvResources_RsClLightYellow 64962 +#define JvResources_RsClLightGreen 64963 +#define JvResources_RsClLightTurquoise 64964 +#define JvResources_RsClPaleBlue 64965 +#define JvResources_RsClLavender 64966 +#define JvResources_RsClScrollBar 64967 +#define JvResources_RsClBackground 64968 +#define JvResources_RsClActiveCaption 64969 +#define JvResources_RsClInactiveCaption 64970 +#define JvResources_RsClMenu 64971 +#define JvResources_RsClWindow 64972 +#define JvResources_RsClWindowFrame 64973 +#define JvResources_RsClMenuText 64974 +#define JvResources_RsClWindowText 64975 +#define JvResources_RsClDarkRed 64976 +#define JvResources_RsClOrange 64977 +#define JvResources_RsClDarkYellow 64978 +#define JvResources_RsClBlueGray 64979 +#define JvResources_RsClGray50 64980 +#define JvResources_RsClLightOrange 64981 +#define JvResources_RsClSeaGreen 64982 +#define JvResources_RsClLightBlue 64983 +#define JvResources_RsClViolet 64984 +#define JvResources_RsClGray40 64985 +#define JvResources_RsClPink 64986 +#define JvResources_RsClGold 64987 +#define JvResources_RsClBrightGreen 64988 +#define JvResources_RsClTurquoise 64989 +#define JvResources_RsClPlum 64990 +#define JvResources_RsClGray25 64991 +#define JvResources_RsClYellow 64992 +#define JvResources_RsClBlue 64993 +#define JvResources_RsClFuchsia 64994 +#define JvResources_RsClAqua 64995 +#define JvResources_RsClWhite 64996 +#define JvResources_RsClMoneyGreen 64997 +#define JvResources_RsClSkyBlue 64998 +#define JvResources_RsClCream 64999 +#define JvResources_RsClMedGray 65000 +#define JvResources_RsClBrown 65001 +#define JvResources_RsClOliveGreen 65002 +#define JvResources_RsClDarkGreen 65003 +#define JvResources_RsClDarkTeal 65004 +#define JvResources_RsClDarkBlue 65005 +#define JvResources_RsClIndigo 65006 +#define JvResources_RsClGray80 65007 +#define JvResources_RsEGIFDecodeError 65008 +#define JvResources_RsEGIFEncodeError 65009 +#define JvResources_RsEGIFVersion 65010 +#define JvResources_RsEPixelFormatNotImplemented 65011 +#define JvResources_RsEBitCountNotImplemented 65012 +#define JvResources_RsClBlack 65013 +#define JvResources_RsClMaroon 65014 +#define JvResources_RsClGreen 65015 +#define JvResources_RsClOlive 65016 +#define JvResources_RsClNavy 65017 +#define JvResources_RsClPurple 65018 +#define JvResources_RsClTeal 65019 +#define JvResources_RsClGray 65020 +#define JvResources_RsClSilver 65021 +#define JvResources_RsClRed 65022 +#define JvResources_RsClLime 65023 +#define JvResources_RsAniExtension 65024 +#define JvResources_RsAniFilterName 65025 +#define JvResources_RsRootValueReplaceFmt 65026 +#define JvResources_RsEUnableToCreateKey 65027 +#define JvResources_RsEEnumeratingRegistry 65028 +#define JvResources_RsEInvalidType 65029 +#define JvResources_RsEUnknownBaseType 65030 +#define JvResources_RsEInvalidPath 65031 +#define JvResources_RsENotAUniqueRootPath 65032 +#define JvResources_RsECircularReferenceOfStorages 65033 +#define JvResources_RsGIFImage 65034 +#define JvResources_RsEChangeGIFSize 65035 +#define JvResources_RsENoGIFData 65036 +#define JvResources_RsEUnrecognizedGIFExt 65037 +#define JvResources_RsEWrongGIFColors 65038 +#define JvResources_RsEBadGIFCodeSize 65039 +#define ComStrs_sRichEditInsertError 65040 +#define ComStrs_sRichEditLoadFail 65041 +#define ComStrs_sRichEditSaveFail 65042 +#define ComStrs_sUDAssociated 65043 +#define ComStrs_sPageIndexError 65044 +#define ComStrs_sInvalidComCtl32 65045 +#define ComStrs_sDateTimeMax 65046 +#define ComStrs_sDateTimeMin 65047 +#define ComStrs_sNeedAllowNone 65048 +#define ComStrs_sFailSetCalDateTime 65049 +#define ComStrs_sFailSetCalMaxSelRange 65050 +#define ComStrs_sFailSetCalMinMaxRange 65051 +#define ComStrs_sFailsetCalSelRange 65052 +#define JConsts_sChangeJPGSize 65053 +#define JConsts_sJPEGError 65054 +#define JConsts_sJPEGImageFile 65055 +#define IdResourceStrings_RSSocksServerConnectionRefusedError 65056 +#define IdResourceStrings_RSSocksServerTTLExpiredError 65057 +#define IdResourceStrings_RSSocksServerCommandError 65058 +#define IdResourceStrings_RSSocksServerAddressError 65059 +#define IdResourceStrings_RSUnevenSizeInDecodeStream 65060 +#define IdResourceStrings_RSUnevenSizeInEncodeStream 65061 +#define IdResourceStrings_RSThreadTerminateAndWaitFor 65062 +#define ComStrs_sTabFailClear 65063 +#define ComStrs_sTabFailDelete 65064 +#define ComStrs_sTabFailRetrieve 65065 +#define ComStrs_sTabFailGetObject 65066 +#define ComStrs_sTabFailSet 65067 +#define ComStrs_sTabFailSetObject 65068 +#define ComStrs_sTabMustBeMultiLine 65069 +#define ComStrs_sInvalidIndex 65070 +#define ComStrs_sInsertError 65071 +#define IdResourceStrings_RSStackENAMETOOLONG 65072 +#define IdResourceStrings_RSStackEHOSTDOWN 65073 +#define IdResourceStrings_RSStackEHOSTUNREACH 65074 +#define IdResourceStrings_RSStackENOTEMPTY 65075 +#define IdResourceStrings_RSStackHOST_NOT_FOUND 65076 +#define IdResourceStrings_RSSocksRequestFailed 65077 +#define IdResourceStrings_RSSocksRequestServerFailed 65078 +#define IdResourceStrings_RSSocksRequestIdentFailed 65079 +#define IdResourceStrings_RSSocksUnknownError 65080 +#define IdResourceStrings_RSSocksServerRespondError 65081 +#define IdResourceStrings_RSSocksAuthMethodError 65082 +#define IdResourceStrings_RSSocksAuthError 65083 +#define IdResourceStrings_RSSocksServerGeneralError 65084 +#define IdResourceStrings_RSSocksServerPermissionError 65085 +#define IdResourceStrings_RSSocksServerNetUnreachableError 65086 +#define IdResourceStrings_RSSocksServerHostUnreachableError 65087 +#define IdResourceStrings_RSStackEAFNOSUPPORT 65088 +#define IdResourceStrings_RSStackEADDRINUSE 65089 +#define IdResourceStrings_RSStackEADDRNOTAVAIL 65090 +#define IdResourceStrings_RSStackENETDOWN 65091 +#define IdResourceStrings_RSStackENETUNREACH 65092 +#define IdResourceStrings_RSStackENETRESET 65093 +#define IdResourceStrings_RSStackECONNABORTED 65094 +#define IdResourceStrings_RSStackECONNRESET 65095 +#define IdResourceStrings_RSStackENOBUFS 65096 +#define IdResourceStrings_RSStackEISCONN 65097 +#define IdResourceStrings_RSStackENOTCONN 65098 +#define IdResourceStrings_RSStackESHUTDOWN 65099 +#define IdResourceStrings_RSStackETOOMANYREFS 65100 +#define IdResourceStrings_RSStackETIMEDOUT 65101 +#define IdResourceStrings_RSStackECONNREFUSED 65102 +#define IdResourceStrings_RSStackELOOP 65103 +#define IdResourceStrings_RSStackEACCES 65104 +#define IdResourceStrings_RSStackEFAULT 65105 +#define IdResourceStrings_RSStackEINVAL 65106 +#define IdResourceStrings_RSStackEMFILE 65107 +#define IdResourceStrings_RSStackEWOULDBLOCK 65108 +#define IdResourceStrings_RSStackEINPROGRESS 65109 +#define IdResourceStrings_RSStackEALREADY 65110 +#define IdResourceStrings_RSStackENOTSOCK 65111 +#define IdResourceStrings_RSStackEDESTADDRREQ 65112 +#define IdResourceStrings_RSStackEMSGSIZE 65113 +#define IdResourceStrings_RSStackEPROTOTYPE 65114 +#define IdResourceStrings_RSStackENOPROTOOPT 65115 +#define IdResourceStrings_RSStackEPROTONOSUPPORT 65116 +#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65117 +#define IdResourceStrings_RSStackEOPNOTSUPP 65118 +#define IdResourceStrings_RSStackEPFNOSUPPORT 65119 +#define IdResourceStrings_RSHTTPNotImplemented 65120 +#define IdResourceStrings_RSHTTPBadGateway 65121 +#define IdResourceStrings_RSHTTPServiceUnavailable 65122 +#define IdResourceStrings_RSHTTPGatewayTimeout 65123 +#define IdResourceStrings_RSHTTPHTTPVersionNotSupported 65124 +#define IdResourceStrings_RSHTTPUnknownResponseCode 65125 +#define IdResourceStrings_RSHTTPHeaderAlreadyWritten 65126 +#define IdResourceStrings_RSHTTPErrorParsingCommand 65127 +#define IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme 65128 +#define IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive 65129 +#define IdResourceStrings_RSHTTPAuthAlreadyRegistered 65130 +#define IdResourceStrings_RSInvalidServiceName 65131 +#define IdResourceStrings_RSStackError 65132 +#define IdResourceStrings_RSStackInvalidIP 65133 +#define IdResourceStrings_RSStackEINTR 65134 +#define IdResourceStrings_RSStackEBADF 65135 +#define IdResourceStrings_RSHTTPBadRequest 65136 +#define IdResourceStrings_RSHTTPUnauthorized 65137 +#define IdResourceStrings_RSHTTPForbidden 65138 +#define IdResourceStrings_RSHTTPNotFound 65139 +#define IdResourceStrings_RSHTTPMethodeNotallowed 65140 +#define IdResourceStrings_RSHTTPNotAcceptable 65141 +#define IdResourceStrings_RSHTTPProxyAuthenticationRequired 65142 +#define IdResourceStrings_RSHTTPRequestTimeout 65143 +#define IdResourceStrings_RSHTTPConflict 65144 +#define IdResourceStrings_RSHTTPGone 65145 +#define IdResourceStrings_RSHTTPLengthRequired 65146 +#define IdResourceStrings_RSHTTPPreconditionFailed 65147 +#define IdResourceStrings_RSHTTPRequestEntityToLong 65148 +#define IdResourceStrings_RSHTTPRequestURITooLong 65149 +#define IdResourceStrings_RSHTTPUnsupportedMediaType 65150 +#define IdResourceStrings_RSHTTPInternalServerError 65151 +#define IdResourceStrings_RSStatusDisconnected 65152 +#define IdResourceStrings_RSStatusText 65153 +#define IdResourceStrings_RSConnectTimeout 65154 +#define IdResourceStrings_RSHTTPContinue 65155 +#define IdResourceStrings_RSHTTPOK 65156 +#define IdResourceStrings_RSHTTPCreated 65157 +#define IdResourceStrings_RSHTTPAccepted 65158 +#define IdResourceStrings_RSHTTPNonAuthoritativeInformation 65159 +#define IdResourceStrings_RSHTTPNoContent 65160 +#define IdResourceStrings_RSHTTPResetContent 65161 +#define IdResourceStrings_RSHTTPPartialContent 65162 +#define IdResourceStrings_RSHTTPMovedPermanently 65163 +#define IdResourceStrings_RSHTTPMovedTemporarily 65164 +#define IdResourceStrings_RSHTTPSeeOther 65165 +#define IdResourceStrings_RSHTTPNotModified 65166 +#define IdResourceStrings_RSHTTPUseProxy 65167 +#define IdResourceStrings_RSNoExecuteSpecified 65168 +#define IdResourceStrings_RSIdNoDataToRead 65169 +#define IdResourceStrings_RSCanNotBindRange 65170 +#define IdResourceStrings_RSInvalidPortRange 65171 +#define IdResourceStrings_RSReadTimeout 65172 +#define IdResourceStrings_RSReadLnMaxLineLengthExceeded 65173 +#define IdResourceStrings_RSNoCommandHandlerFound 65174 +#define IdResourceStrings_RSWS2CallError 65175 +#define IdResourceStrings_RSWS2LoadError 65176 +#define IdResourceStrings_RSMIMEExtensionEmpty 65177 +#define IdResourceStrings_RSMIMEMIMETypeEmpty 65178 +#define IdResourceStrings_RSMIMEMIMEExtAlreadyExists 65179 +#define IdResourceStrings_RSStatusResolving 65180 +#define IdResourceStrings_RSStatusConnecting 65181 +#define IdResourceStrings_RSStatusConnected 65182 +#define IdResourceStrings_RSStatusDisconnecting 65183 +#define ComConst_SNoMethod 65184 +#define ComConst_SVarNotObject 65185 +#define ComConst_STooManyParams 65186 +#define IdResourceStrings_RSCannotAllocateSocket 65187 +#define IdResourceStrings_RSConnectionClosedGracefully 65188 +#define IdResourceStrings_RSCouldNotBindSocket 65189 +#define IdResourceStrings_RSFailedTimeZoneInfo 65190 +#define IdResourceStrings_RSNotEnoughDataInBuffer 65191 +#define IdResourceStrings_RSWinsockInitializationError 65192 +#define IdResourceStrings_RSSetSizeExceeded 65193 +#define IdResourceStrings_RSThreadClassNotSpecified 65194 +#define IdResourceStrings_RSFileNotFound 65195 +#define IdResourceStrings_RSOnlyOneAntiFreeze 65196 +#define IdResourceStrings_RSNotConnected 65197 +#define IdResourceStrings_RSObjectTypeNotSupported 65198 +#define IdResourceStrings_RSTerminateThreadTimeout 65199 +#define uRORes_err_InvalidHeader 65200 +#define uRORes_err_UnknownClassInStream 65201 +#define uRORes_err_UnexpectedClassInStream 65202 +#define uRORes_err_SessionNotFound 65203 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65204 +#define uRORes_err_TooManySessions 65205 +#define uRORes_err_DOMElementIsNIL 65206 +#define uRORes_err_CannotLoadXMLDocument 65207 +#define uRORes_err_ErrorCreatingMsXmlDoc 65208 +#define uRORes_err_NoXMLParsersAvailable 65209 +#define uRORes_err_IDispatchMarshalingNotSupported 65210 +#define uRORes_err_UnsupportedVariantType 65211 +#define uRORes_err_VariantIsNotArray 65212 +#define uRORes_err_InvalidVarArrayDimCount 65213 +#define uRORes_err_MessageNotAssigned 65214 +#define ComConst_SOleError 65215 +#define uRORes_err_NILMessage 65216 +#define uRORes_err_UnspecifiedInterface 65217 +#define uRORes_err_UnspecifiedMessage 65218 +#define uRORes_err_UnknownMethod 65219 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65220 +#define uRORes_err_TypeNotSupported 65221 +#define uRORes_err_ClassFactoryNotFound 65222 +#define uRORes_err_IROMessageNotSupported 65223 +#define uRORes_err_ClassAlreadyRegistered 65224 +#define uRORes_err_UnknownProxyInterface 65225 +#define uRORes_err_DispatcherAlreadyAssigned 65226 +#define uRORes_err_CannotFindMessageDispatcher 65227 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65228 +#define uRORes_err_UnhandledException 65229 +#define uRORes_err_ChannelBusy 65230 +#define uRORes_err_ArrayIndexOutOfBounds 65231 +#define uRORes_err_InvalidStringLength 65232 +#define uRORes_str_InvalidClassTypeInStream 65233 +#define uRORes_err_UnexpectedEndOfStream 65234 +#define uRORes_err_RodlDuplicateName 65235 +#define uRORes_err_RodlNoDataTypeSpecified 65236 +#define uRORes_err_RodlNoEnumValues 65237 +#define uRORes_err_RodlNoStructElementsDefined 65238 +#define uRORes_err_RodlNoOperationsDefined 65239 +#define uRORes_err_RodlUsedFileDoesNotExist 65240 +#define uRORes_err_RodlInvalidDataType 65241 +#define uRORes_err_RodlStructCannotBeNested 65242 +#define uRORes_err_RodlInvalidAncestorType 65243 +#define uRORes_str_ExceptionOnServer 65244 +#define uRORes_str_ExceptionReraisedFromServer 65245 +#define uRORes_err_AssignError 65246 +#define uRORes_err_InvalidRequestStream 65247 +#define uRODECConst_sProtectionCircular 65248 +#define uRODECConst_sStringFormatExists 65249 +#define uRODECConst_sInvalidStringFormat 65250 +#define uRODECConst_sInvalidFormatString 65251 +#define uRODECConst_sFMT_COPY 65252 +#define uRODECConst_sFMT_HEX 65253 +#define uRODECConst_sFMT_HEXL 65254 +#define uRODECConst_sFMT_MIME64 65255 +#define uRODECConst_sFMT_UU 65256 +#define uRODECConst_sFMT_XX 65257 +#define uRODECConst_sInvalidKeySize 65258 +#define uRODECConst_sNotInitialized 65259 +#define uRORes_err_InvalidIndex 65260 +#define uRORes_err_InvalidType 65261 +#define uRORes_err_InvalidStream 65262 +#define uRORes_err_InvalidParamFlag 65263 +#define Consts_SDockedCtlNeedsName 65264 +#define Consts_SDockTreeRemoveError 65265 +#define Consts_SDockZoneNotFound 65266 +#define Consts_SDockZoneHasNoCtl 65267 +#define Consts_SDockZoneVersionConflict 65268 +#define Consts_SMultiSelectRequired 65269 +#define Consts_SSeparator 65270 +#define Consts_SErrorSettingCount 65271 +#define Consts_SListBoxMustBeVirtual 65272 +#define Consts_SANSIEncoding 65273 +#define Consts_SASCIIEncoding 65274 +#define Consts_SUnicodeEncoding 65275 +#define Consts_SBigEndianEncoding 65276 +#define Consts_SUTF8Encoding 65277 +#define Consts_SUTF7Encoding 65278 +#define Consts_SPageControlNotSet 65279 +#define Consts_SmkcCtrl 65280 +#define Consts_SmkcAlt 65281 +#define Consts_srNone 65282 +#define Consts_SOutOfRange 65283 +#define Consts_sAllFilter 65284 +#define Consts_SInsertLineError 65285 +#define Consts_SInvalidClipFmt 65286 +#define Consts_SIconToClipboard 65287 +#define Consts_SCannotOpenClipboard 65288 +#define Consts_SInvalidMemoSize 65289 +#define Consts_SInvalidPrinterOp 65290 +#define Consts_SNoDefaultPrinter 65291 +#define Consts_SDuplicateMenus 65292 +#define Consts_SPictureLabel 65293 +#define Consts_SPictureDesc 65294 +#define Consts_SPreviewLabel 65295 +#define Consts_SmkcBkSp 65296 +#define Consts_SmkcTab 65297 +#define Consts_SmkcEsc 65298 +#define Consts_SmkcEnter 65299 +#define Consts_SmkcSpace 65300 +#define Consts_SmkcPgUp 65301 +#define Consts_SmkcPgDn 65302 +#define Consts_SmkcEnd 65303 +#define Consts_SmkcHome 65304 +#define Consts_SmkcLeft 65305 +#define Consts_SmkcUp 65306 +#define Consts_SmkcRight 65307 +#define Consts_SmkcDown 65308 +#define Consts_SmkcIns 65309 +#define Consts_SmkcDel 65310 +#define Consts_SmkcShift 65311 +#define Consts_SMaskEditErr 65312 +#define Consts_SMsgDlgWarning 65313 +#define Consts_SMsgDlgError 65314 +#define Consts_SMsgDlgInformation 65315 +#define Consts_SMsgDlgConfirm 65316 +#define Consts_SMsgDlgYes 65317 +#define Consts_SMsgDlgNo 65318 +#define Consts_SMsgDlgOK 65319 +#define Consts_SMsgDlgCancel 65320 +#define Consts_SMsgDlgHelp 65321 +#define Consts_SMsgDlgAbort 65322 +#define Consts_SMsgDlgRetry 65323 +#define Consts_SMsgDlgIgnore 65324 +#define Consts_SMsgDlgAll 65325 +#define Consts_SMsgDlgNoToAll 65326 +#define Consts_SMsgDlgYesToAll 65327 +#define Consts_SOKButton 65328 +#define Consts_SCancelButton 65329 +#define Consts_SYesButton 65330 +#define Consts_SNoButton 65331 +#define Consts_SHelpButton 65332 +#define Consts_SCloseButton 65333 +#define Consts_SIgnoreButton 65334 +#define Consts_SRetryButton 65335 +#define Consts_SAbortButton 65336 +#define Consts_SAllButton 65337 +#define Consts_SCannotDragForm 65338 +#define Consts_SVMetafiles 65339 +#define Consts_SVEnhMetafiles 65340 +#define Consts_SVIcons 65341 +#define Consts_SVBitmaps 65342 +#define Consts_SMaskErr 65343 +#define Consts_SMDIChildNotVisible 65344 +#define Consts_SVisibleChanged 65345 +#define Consts_SCannotShowModal 65346 +#define Consts_SScrollBarRange 65347 +#define Consts_SPropertyOutOfRange 65348 +#define Consts_SMenuIndexError 65349 +#define Consts_SMenuReinserted 65350 +#define Consts_SMenuNotFound 65351 +#define Consts_SNoTimers 65352 +#define Consts_SNotPrinting 65353 +#define Consts_SPrinting 65354 +#define Consts_SInvalidPrinter 65355 +#define Consts_SDeviceOnPort 65356 +#define Consts_SGroupIndexTooLow 65357 +#define Consts_SNoMDIForm 65358 +#define Consts_SControlParentSetToSelf 65359 +#define Consts_SChangeIconSize 65360 +#define Consts_SUnknownExtension 65361 +#define Consts_SUnknownClipboardFormat 65362 +#define Consts_SOutOfResources 65363 +#define Consts_SNoCanvasHandle 65364 +#define Consts_SInvalidImageSize 65365 +#define Consts_SInvalidImageList 65366 +#define Consts_SReplaceImage 65367 +#define Consts_SImageIndexError 65368 +#define Consts_SImageReadFail 65369 +#define Consts_SImageWriteFail 65370 +#define Consts_SWindowDCError 65371 +#define Consts_SWindowClass 65372 +#define Consts_SCannotFocus 65373 +#define Consts_SParentRequired 65374 +#define Consts_SParentGivenNotAParent 65375 +#define RTLConsts_SWriteError 65376 +#define RTLConsts_SThreadCreateError 65377 +#define RTLConsts_SThreadError 65378 +#define HelpIntfs_hNoTableOfContents 65379 +#define HelpIntfs_hNothingFound 65380 +#define HelpIntfs_hNoContext 65381 +#define HelpIntfs_hNoContextFound 65382 +#define HelpIntfs_hNoTopics 65383 +#define Consts_SInvalidTabPosition 65384 +#define Consts_SInvalidTabStyle 65385 +#define Consts_SInvalidBitmap 65386 +#define Consts_SInvalidIcon 65387 +#define Consts_SInvalidMetafile 65388 +#define Consts_SInvalidPixelFormat 65389 +#define Consts_SInvalidImage 65390 +#define Consts_SScanLine 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_SOperationAborted 65488 +#define SysConst_SException 65489 +#define SysConst_SExceptTitle 65490 +#define SysConst_SInvalidFormat 65491 +#define SysConst_SArgumentMissing 65492 +#define SysConst_SDispatchError 65493 +#define SysConst_SReadAccess 65494 +#define SysConst_SWriteAccess 65495 +#define SysConst_SFormatTooLong 65496 +#define SysConst_SVarArrayCreate 65497 +#define SysConst_SVarArrayBounds 65498 +#define SysConst_SVarArrayLocked 65499 +#define SysConst_SVarArrayWithHResult 65500 +#define SysConst_SInvalidVarCast 65501 +#define SysConst_SInvalidVarOp 65502 +#define SysConst_SInvalidVarNullOp 65503 +#define SysConst_SDiskFull 65504 +#define SysConst_SInvalidInput 65505 +#define SysConst_SDivByZero 65506 +#define SysConst_SRangeError 65507 +#define SysConst_SIntOverflow 65508 +#define SysConst_SInvalidOp 65509 +#define SysConst_SZeroDivide 65510 +#define SysConst_SOverflow 65511 +#define SysConst_SUnderflow 65512 +#define SysConst_SInvalidPointer 65513 +#define SysConst_SInvalidCast 65514 +#define SysConst_SAccessViolationArg3 65515 +#define SysConst_SAccessViolationNoArg 65516 +#define SysConst_SStackOverflow 65517 +#define SysConst_SControlC 65518 +#define SysConst_SPrivilege 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_STimeEncodeError 65527 +#define SysConst_SDateEncodeError 65528 +#define SysConst_SOutOfMemory 65529 +#define SysConst_SInOutError 65530 +#define SysConst_SFileNotFound 65531 +#define SysConst_SInvalidFilename 65532 +#define SysConst_STooManyOpenFiles 65533 +#define SysConst_SAccessDenied 65534 +#define SysConst_SEndOfFile 65535 +STRINGTABLE +BEGIN + TeeConst_TeeMsg_ValuesBar, "Bar" + TeeConst_TeeMsg_ValuesAngle, "Angle" + TeeConst_TeeMsg_ValuesGanttStart, "Start" + TeeConst_TeeMsg_ValuesGanttEnd, "End" + TeeConst_TeeMsg_ValuesGanttNextTask, "NextTask" + TeeConst_TeeMsg_ValuesBubbleRadius, "Radius" + TeeConst_TeeMsg_ValuesArrowEndX, "EndX" + TeeConst_TeeMsg_ValuesArrowEndY, "EndY" + 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" + TeeConst_TeeMsg_FunctionMultiply, "Multiply" + TeeConst_TeeMsg_FunctionDivide, "Divide" + TeeConst_TeeMsg_FunctionHigh, "High" + TeeConst_TeeMsg_FunctionLow, "Low" + TeeConst_TeeMsg_FunctionAverage, "Average" + TeeConst_TeeMsg_GalleryShape, "Shape" + TeeConst_TeeMsg_GalleryBubble, "Bubble" + TeeConst_TeeMsg_DefaultFontName, "Arial" + TeeConst_TeeMsg_CheckPointerSize, "Pointer size must be greater than zero" + TeeConst_TeeMsg_FunctionPeriod, "Function Period should be >= 0" + TeeConst_TeeMsg_PieOther, "Other" + TeeConst_TeeMsg_ShapeGallery1, "abc" + TeeConst_TeeMsg_ShapeGallery2, "123" + TeeConst_TeeMsg_ValuesX, "X" + TeeConst_TeeMsg_ValuesY, "Y" + TeeConst_TeeMsg_ValuesPie, "Pie" + TeeConst_TeeMsg_GalleryArrow, "Arrow" + TeeConst_TeeMsg_GalleryGantt, "Gantt" + TeeConst_TeeMsg_GanttSample1, "Design" + TeeConst_TeeMsg_GanttSample2, "Prototyping" + TeeConst_TeeMsg_GanttSample3, "Development" + TeeConst_TeeMsg_GanttSample4, "Sales" + TeeConst_TeeMsg_GanttSample5, "Marketing" + TeeConst_TeeMsg_GanttSample6, "Testing" + TeeConst_TeeMsg_GanttSample7, "Manufac." + TeeConst_TeeMsg_GanttSample8, "Debugging" + TeeConst_TeeMsg_GanttSample9, "New Version" + TeeConst_TeeMsg_GanttSample10, "Banking" + TeeConst_TeeMsg_DefaultFontSize, "8" + TeeConst_TeeMsg_DefaultGalleryFontSize, "8" + TeeConst_TeeMsg_FunctionAdd, "Add" + TeeConst_TeeMsg_FunctionSubtract, "Subtract" + TeeConst_TeeMsg_GalleryBar, "Bar" + TeeConst_TeeMsg_GalleryHorizBar, "Horiz. Bar" + TeeConst_TeeMsg_GalleryPie, "Pie" + TeeConst_TeeMsg_GalleryFastLine, "Fast Line" + TeeConst_TeeMsg_Rotation, "Rotation" + TeeConst_TeeMsg_PieSample1, "Cars" + TeeConst_TeeMsg_PieSample2, "Phones" + TeeConst_TeeMsg_PieSample3, "Tables" + TeeConst_TeeMsg_PieSample4, "Monitors" + TeeConst_TeeMsg_PieSample5, "Lamps" + TeeConst_TeeMsg_PieSample6, "Keyboards" + TeeConst_TeeMsg_PieSample7, "Bikes" + TeeConst_TeeMsg_PieSample8, "Chairs" + TeeConst_TeeMsg_GalleryChartName, "TeeGalleryChart" + TeeConst_TeeMsg_GalleryStandard, "Standard" + TeeConst_TeeMsg_GalleryFunctions, "Functions" + TeeConst_TeeMsg_AxisMinMax, "Axis Minimum Value must be <= Maximum" + TeeConst_TeeMsg_AxisMaxMin, "Axis Maximum Value must be >= Minimum" + TeeConst_TeeMsg_AxisLogBase, "Axis Logarithmic Base should be >= 2" + TeeConst_TeeMsg_MaxPointsPerPage, "MaxPointsPerPage must be >= 0" + TeeConst_TeeMsg_3dPercent, "3D effect percent must be between %d and %d" + TeeConst_TeeMsg_CircularSeries, "Circular Series dependences are not allowed" + TeeConst_TeeMsg_BarWidthPercent, "Bar Width Percent must be between 1 and 100" + TeeConst_TeeMsg_BarOffsetPercent, "Bar Offset Percent must be between -100% and 100%" + TeeConst_TeeMsg_DefaultPercentOf, "%s of %s" + TeeConst_TeeMsg_DefPercentFormat, "##0.## %" + TeeConst_TeeMsg_DefValueFormat, "#,##0.###" + TeeConst_TeeMsg_AxisTitle, "Axis Title" + TeeConst_TeeMsg_AxisLabels, "Axis Labels" + TeeConst_TeeMsg_GalleryLine, "Line" + TeeConst_TeeMsg_GalleryPoint, "Point" + TeeConst_TeeMsg_GalleryArea, "Area" + MidConst_SNoEditsAllowed, "Modifications are not allowed" + MidConst_SNoDeletesAllowed, "Deletes are not allowed" + MidConst_SNoInsertsAllowed, "Inserts are not allowed" + MidConst_SConnectionMissing, "Requires Connection before opening" + MidConst_SNoCircularConnection, "Circular reference to Connection not allowed" + TeeConst_TeeMsg_LegendTopPos, "Top Legend Position must be between 0 and 100 %" + TeeConst_TeeMsg_LegendFirstValue, "First Legend Value must be > 0" + TeeConst_TeeMsg_LegendColorWidth, "Legend Color Width must be between 0 and 100 %" + TeeConst_TeeMsg_SeriesSetDataSource, "No ParentChart to validate DataSource" + TeeConst_TeeMsg_SeriesInvDataSource, "No valid DataSource: %s" + TeeConst_TeeMsg_FillSample, "FillSampleValues NumValues must be > 0" + TeeConst_TeeMsg_Angle, "%s Angle must be between 0 and 359 degrees" + TeeConst_TeeMsg_AxisLogDateTime, "DateTime Axis cannot be Logarithmic" + TeeConst_TeeMsg_AxisLogNotPositive, "Logarithmic Axis Min and Max values should be >= 0" + TeeConst_TeeMsg_AxisLabelSep, "Labels Separation % must be greater than 0" + TeeConst_TeeMsg_AxisIncrementNeg, "Axis increment must be >= 0" + SqlConst_SNOTIMPLEMENTED, "[0x001B] Not implemented" + SqlConst_SDRIVERINCOMPATIBLE, "[0x001C] Incompatible driver" + MidConst_SNoDataProvider, "Missing data provider or data packet" + MidConst_SInvalidDataPacket, "Invalid data packet" + MidConst_SRefreshError, "Must apply updates before refreshing data" + MidConst_SNoCircularReference, "Circular provider references not allowed" + MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" + MidConst_SCannotCreateDataSet, "No fields defined. Cannot create dataset" + MidConst_SNoConnectToBroker, "Connection not allowed to TConnectionBroker" + MidConst_SNoParentConnection, "ParentConnection is not assigned" + MidConst_SInvalidOptParamType, "Value cannot be stored in an optional parameter" + MidConst_SConstraintFailed, "Record or field constraint failed." + MidConst_SField, "Field" + MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\"" + MidConst_SFieldConstFail, "Preparation of field constraint failed with error \"%s\"" + MidConst_SDefExprFail, "Preparation of default expression failed with error \"%s\"" + SqlConst_SSQLPARAMNOTSET, "dbExpress Error [0x000B]: Parameter Not Set" + SqlConst_SINVALIDUSRPASS, "[0x000C] Invalid Username/Password" + SqlConst_SINVALIDPRECISION, "[0x000D]: Invalid Precision" + SqlConst_SINVALIDLEN, "[0x000E]: Invalid Length" + SqlConst_SINVALIDXISOLEVEL, "[0x000F]: Invalid Transaction Isolation Level" + SqlConst_SINVALIDTXNID, "[0x0010]: Invalid Transaction ID" + SqlConst_SDUPLICATETXNID, "[0x0011]: Duplicate Transaction ID" + SqlConst_SDRIVERRESTRICTED, "[0x0012]: Application is not licensed to use this feature" + SqlConst_SLOCALTRANSACTIVE, "[0x0013]: Local Transaction already active" + SqlConst_SMULTIPLETRANSNOTENABLED, "[0x0014]: Multiple Transactions not Enabled" + SqlConst_SCONNECTIONFAILED, "[0x0015]: Connection failed" + SqlConst_SDRIVERINITFAILED, "[0x0016]: Driver initialization failed" + SqlConst_SOPTLOCKFAILED, "[0x0017]: Optimistic Locking failed" + SqlConst_SINVALIDREF, "[0x0018]: Invalid REF" + SqlConst_SNOTABLE, "[0x0019]: No table found" + SqlConst_SMISSINGPARAMINSQL, "[0x001A] Missing parameter marker in SQL" + VDBConsts_SEditRecord, "Edit record" + VDBConsts_SPostEdit, "Post edit" + VDBConsts_SCancelEdit, "Cancel edit" + VDBConsts_SRefreshRecord, "Refresh data" + VDBConsts_SRemoteLogin, "Remote Login" + SqlConst_SNOERROR, "" + SqlConst_SWARNING, "[0x0001]: Warning" + SqlConst_SNOMEMORY, "[0x0002]: Insufficient Memory for Operation" + SqlConst_SINVALIDFLDTYPE, "[0x0003]: Invalid Field Type" + SqlConst_SINVALIDHNDL, "[0x0004]: Invalid Handle" + SqlConst_SNOTSUPPORTED, "[0x0005]: Operation Not Supported" + SqlConst_SINVALIDTIME, "[0x0006]: Invalid Time" + SqlConst_SINVALIDXLATION, "[0x0007]: Invalid Data Translation" + SqlConst_SOUTOFRANGE, "[0x0008]: Parameter/Column out of Range" + SqlConst_SINVALIDPARAM, "[0x0009]: Invalid Parameter" + SqlConst_SEOF, "[0x000A]: Result set at EOF" + 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_cxSSpinEditInvalidNumericValue, "Invalid numeric value" + VDBConsts_SFirstRecord, "First record" + VDBConsts_SPriorRecord, "Prior record" + VDBConsts_SNextRecord, "Next record" + VDBConsts_SLastRecord, "Last record" + VDBConsts_SInsertRecord, "Insert record" + VDBConsts_SDeleteRecord, "Delete record" + 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_scxRegExprIllegalIntegerValue, "Illegal integer value" + 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_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_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_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_cxSDateThursday, "Thursday" + cxEditConsts_cxSDateFriday, "Friday" + cxEditConsts_cxSDateSaturday, "Saturday" + cxEditConsts_cxSDateFirst, "first" + cxEditConsts_cxSDateSecond, "second" + cxEditConsts_cxSDateThird, "third" + cxEditConsts_cxSDateFourth, "fourth" + cxEditConsts_cxSDateFifth, "fifth" + cxEditConsts_cxSDateSixth, "sixth" + cxEditConsts_cxSDateSeventh, "seventh" + cxEditConsts_cxSDateBOM, "bom" + cxEditConsts_cxSDateEOM, "eom" + cxEditConsts_cxSDateNow, "now" + cxEditConsts_scxSCalcError, "Error" + cxEditConsts_scxSHyperLinkPrefix, "http://" + cxEditConsts_scxSEditRepositoryBlobItem, "BlobEdit|Represents the BLOB editor" + 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_cxSDateToday, "today" + cxEditConsts_cxSDateYesterday, "yesterday" + cxEditConsts_cxSDateTomorrow, "tomorrow" + cxEditConsts_cxSDateSunday, "Sunday" + cxEditConsts_cxSDateMonday, "Monday" + cxEditConsts_cxSDateTuesday, "Tuesday" + cxEditConsts_cxSDateWednesday, "Wednesday" + 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_cxSBlobButtonOK, "&OK" + cxEditConsts_cxSBlobButtonCancel, "&Cancel" + cxEditConsts_cxSBlobButtonClose, "&Close" + cxEditConsts_cxSBlobMemo, "(MEMO)" + cxEditConsts_cxSBlobMemoEmpty, "(memo)" + cxEditConsts_cxSBlobPicture, "(PICTURE)" + cxEditConsts_cxSBlobPictureEmpty, "(picture)" + cxEditConsts_cxSMenuItemCaptionCut, "Cu&t" + cxEditConsts_cxSMenuItemCaptionCopy, "&Copy" + 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" + cxEditConsts_cxSEditDateConvertError, "Could not convert to date" + cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" + cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" + cxEditConsts_cxSEditPopupCircularReferencingError, "Circular referencing is not allowed" + ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions" + ADOConst_SCantRequery, "Cannot perform a requery after connection has changed" + ADOConst_SNoFilterOptions, "FilterOptions are not supported" + ADOConst_SRecordsetNotOpen, "Recordset is not open" + ADOConst_sNameAttr, "Name" + ADOConst_sValueAttr, "Value" + 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)" + 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." + 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: " + ADOConst_SMissingConnection, "Missing Connection or ConnectionString" + ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables" + ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls" + ADOConst_SMissingCommandText, "Missing %s property" + ADOConst_SNoResultSet, "CommandText does not return a result set" + ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed" + ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors" + ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s" + 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" + 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] " + IBSQLMonitor_StrPrepare, ": [Prepare] " + 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_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" + uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." + 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_FieldTypeNotSupported, "FieldType %s (%d) is 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_UnknownParameter, "Unknown parameter %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_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" + DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" + DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" + DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" + 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" + 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" + DBConsts_SExprIncorrect, "Incorrectly formed filter expression" + DBConsts_SExprNothing, "nothing" + DBConsts_SExprTypeMis, "Type mismatch in expression" + DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" + DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" + DBConsts_SExprNotAgg, "Expression is not an aggregate expression" + DBConsts_SExprBadConst, "Constant is not correct type %s" + DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" + DBConsts_SExprEmptyInList, "IN predicate list may not be empty" + DBConsts_SInvalidKeywordUse, "Invalid use of keyword" + DBConsts_STextFalse, "False" + DBConsts_STextTrue, "True" + DBConsts_SParameterNotFound, "Parameter '%s' not found" + DBConsts_SInvalidVersion, "Unable to load bind parameters" + DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" + DBConsts_SAggActive, "Property may not be modified while aggregate is active" + 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_SExprTermination, "Filter expression incorrectly terminated" + DBConsts_SExprNameError, "Unterminated field name" + DBConsts_SExprStringError, "Unterminated string constant" + DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" + DBConsts_SExprNoLParen, "'(' expected but %s found" + DBConsts_SExprNoRParen, "')' expected but %s found" + DBConsts_SExprNoRParenOrComma, "')' or ',' expected but %s found" + DBConsts_SExprExpected, "Expression expected but %s found" + DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" + DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" + DBConsts_SExprRangeError, "Constant out of range" + 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" + DBConsts_SFieldIndexError, "Field index out of range" + DBConsts_SNoFieldIndexes, "No index currently active" + DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" + DBConsts_SIndexFieldMissing, "Cannot access index field '%s'" + DBConsts_SNoIndexForFields, "No index for fields '%s'" + 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_SNoNestedMasterSource, "Nested datasets cannot have a MasterSource" + DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" + 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'" + 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'" + JclResources_RsIntelCacheDescr79, "2° Level cache, 128 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7A, "2° Level cache, 256 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7B, "2° Level cache, 512 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7C, "2° Level cache, 1 MBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size" + JclResources_RsIntelCacheDescr7D, "2° Level cache, 2 MByte, 8-way set associative, 64byte line size" + JclResources_RsIntelCacheDescr7F, "2° Level cache, 512 KByte, 2-way set associative, 64-byte line size" + JclResources_RsIntelCacheDescr82, "2° Level cache, 256 KBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr83, "2° Level cache, 512 KBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr84, "2° Level cache, 1 MBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr85, "2° Level cache, 2 MBytes, 8-way associative, 32 Bytes line size" + JclResources_RsIntelCacheDescr86, "2° Level cache, 512 KByte, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr87, "2° 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_RsIntelCacheDescrB3, "Data TLB, 4 KByte Pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching" + JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching" + JclResources_RsIntelCacheDescr44, "Unified cache, 32 byte cache line, 4-way set associative, 1Mb" + JclResources_RsIntelCacheDescr45, "Unified cache, 32 byte cache line, 4-way set associative, 2Mb" + JclResources_RsIntelCacheDescr50, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 64 Entries" + JclResources_RsIntelCacheDescr51, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 128 Entries" + JclResources_RsIntelCacheDescr52, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 256 Entries" + JclResources_RsIntelCacheDescr5B, "Data TLB, 4 KBytes and 4 MBytes pages, 64 Entries" + JclResources_RsIntelCacheDescr5C, "Data TLB, 4 KBytes and 4 MBytes pages, 128 Entries" + JclResources_RsIntelCacheDescr5D, "Data TLB, 4 KBytes and 4 MBytes pages, 256 Entries" + JclResources_RsIntelCacheDescr60, "1° Level data cache: 16 KByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr66, "1° Level Data cache, 8 KBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr67, "1° Level Data cache, 16 KBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr68, "1° Level Data cache, 32 KBytes, 4-way set associative, 64 Bytes 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_RsIntelCacheDescr78, "2° Level cache, 1 MBytes, 4-way set associative, 64 Bytes line size" + JclResources_RsIntelCacheDescr03, "Data TLB, 4Kb pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescr04, "Data TLB, 4Mb pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescr06, "8KB instruction cache, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr08, "16KB instruction cache, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0A, "8KB data cache 2-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0C, "16KB data cache, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr22, "3° Level cache, 512 KBytes, 4-way set associative, 2 lines per sector, 128 byte sector size" + JclResources_RsIntelCacheDescr23, "3° Level cache, 1 MBytes, 8-way set associative, 2 lines per sector, 128 byte sector size" + JclResources_RsIntelCacheDescr25, "3° Level cache, 2 MBytes, 8-way set associative, 2 lines per sector, 128 byte line size" + JclResources_RsIntelCacheDescr29, "3° Level cache, 4M Bytes, 8-way set associative, 2 lines per sector, 128 byte line size" + JclResources_RsIntelCacheDescr2C, "1° Level data cache: 32K Bytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr30, "1° Level instruction cache: 32K Bytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr40, "No L2 cache" + JclResources_RsIntelCacheDescr41, "Unified cache, 32 byte cache line, 4-way set associative, 128Kb" + JclResources_RsIntelCacheDescr42, "Unified cache, 32 byte cache line, 4-way set associative, 256Kb" + JclResources_RsIntelCacheDescr43, "Unified cache, 32 byte cache line, 4-way set associative, 512Kb" + JclResources_RsRTTIBasedOn, "Based on: " + JclResources_RsRTTIFloatType, "Float type: " + JclResources_RsRTTIMethodKind, "Method kind: " + 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_RsBlankSearchString, "Search string cannot be blank" + JclResources_RsSynchCreateEvent, "Failed to create event" + JclResources_RsIntelCacheDescr00, "Null descriptor" + JclResources_RsIntelCacheDescr01, "Instruction TLB, 4Kb pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr02, "Instruction TLB, 4Mb pages, fully associative, 2 entries" + JclResources_RsRTTIVirtualMethod, "virtual method" + JclResources_RsRTTIIndex, "index" + JclResources_RsRTTIDefault, "default" + 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_RsRTTIValueOutOfRange, "Value out of range (%s)." + JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'." + JclResources_RsRTTIVar, "var " + 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" + JvResources_RsGradientActiveCaption, "Gradient Active Caption" + JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption" + JvResources_RsHotLight, "Hot Light" + JvResources_RsMenuBar, "Menu Bar" + JvResources_RsMenuHighlight, "Menu Highlight" + JclResources_RsWin32Prefix, "Win32: %s (%u)" + 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\" for read" + JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\" for write" + JclResources_RsUnableToAccessValue, "Unable to open key \"%s\" and access value \"%s\"" + JclResources_RsWrongDataType, "\"%s\\%s\" is of wrong kind or size" + JclResources_RsInconsistentPath, "\"%s\" does not match RootKey" + JvResources_RsClCaptionText, "Active window title bar text" + JvResources_RsClActiveBorder, "Active window border" + JvResources_RsClInactiveBorder, "Inactive window border" + JvResources_RsClAppWorkSpace, "Application workspace" + 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_RsClRose, "Rose" + JvResources_RsClTan, "Tan" + JvResources_RsClLightYellow, "Light Yellow" + JvResources_RsClLightGreen, "Light Green" + 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_RsClDarkRed, "Dark Red" + JvResources_RsClOrange, "Orange" + JvResources_RsClDarkYellow, "Dark Yellow" + JvResources_RsClBlueGray, "Blue Gray" + 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_RsClYellow, "Yellow" + JvResources_RsClBlue, "Blue" + JvResources_RsClFuchsia, "Fuchsia" + JvResources_RsClAqua, "Aqua" + 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_RsEGIFDecodeError, "GIF encoded data is corrupt" + JvResources_RsEGIFEncodeError, "GIF image encoding error" + JvResources_RsEGIFVersion, "Unknown GIF version" + JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented" + 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_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'" + 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" + 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" + ComStrs_sInvalidComCtl32, "This control requires version 4.70 or greater of COMCTL32.DLL" + ComStrs_sDateTimeMax, "Date exceeds maximum of %s" + ComStrs_sDateTimeMin, "Date is less than minimum of %s" + ComStrs_sNeedAllowNone, "You must be in ShowCheckbox mode to set to this date" + ComStrs_sFailSetCalDateTime, "Failed to set calendar date or time" + ComStrs_sFailSetCalMaxSelRange, "Failed to set maximum selection range" + ComStrs_sFailSetCalMinMaxRange, "Failed to set calendar min/max range" + ComStrs_sFailsetCalSelRange, "Failed to set calendar selected range" + JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image" + JConsts_sJPEGError, "JPEG error #%d" + JConsts_sJPEGImageFile, "JPEG Image File" + IdResourceStrings_RSSocksServerConnectionRefusedError, "Connection refused." + IdResourceStrings_RSSocksServerTTLExpiredError, "TTL expired." + IdResourceStrings_RSSocksServerCommandError, "Command not supported." + IdResourceStrings_RSSocksServerAddressError, "Address type not supported." + IdResourceStrings_RSUnevenSizeInDecodeStream, "Uneven size in DecodeToStream." + IdResourceStrings_RSUnevenSizeInEncodeStream, "Uneven size in Encode." + IdResourceStrings_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" + ComStrs_sTabFailClear, "Failed to clear tab control" + ComStrs_sTabFailDelete, "Failed to delete tab at index %d" + 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" + 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_RSSocksRequestFailed, "Request rejected or failed." + IdResourceStrings_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." + IdResourceStrings_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." + IdResourceStrings_RSSocksUnknownError, "Unknown socks error." + IdResourceStrings_RSSocksServerRespondError, "Socks server did not respond." + IdResourceStrings_RSSocksAuthMethodError, "Invalid socks authentication method." + IdResourceStrings_RSSocksAuthError, "Authentication error to socks server." + IdResourceStrings_RSSocksServerGeneralError, "General SOCKS server failure." + IdResourceStrings_RSSocksServerPermissionError, "Connection not allowed by ruleset." + IdResourceStrings_RSSocksServerNetUnreachableError, "Network unreachable." + IdResourceStrings_RSSocksServerHostUnreachableError, "Host unreachable." + 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_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_RSStackEACCES, "Access denied." + IdResourceStrings_RSStackEFAULT, "Bad address." + 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." + 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_RSHTTPNotImplemented, "Not Implemented" + IdResourceStrings_RSHTTPBadGateway, "Bad Gateway" + IdResourceStrings_RSHTTPServiceUnavailable, "Service Unavailable" + IdResourceStrings_RSHTTPGatewayTimeout, "Gateway timeout" + IdResourceStrings_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" + IdResourceStrings_RSHTTPUnknownResponseCode, "Unknown Response Code" + IdResourceStrings_RSHTTPHeaderAlreadyWritten, "Header has already been written." + IdResourceStrings_RSHTTPErrorParsingCommand, "Error in parsing command." + IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." + IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." + IdResourceStrings_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." + IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." + IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" + IdResourceStrings_RSStackInvalidIP, "%s is not a valid IP address." + IdResourceStrings_RSStackEINTR, "Interrupted system call." + IdResourceStrings_RSStackEBADF, "Bad file number." + IdResourceStrings_RSHTTPBadRequest, "Bad Request" + IdResourceStrings_RSHTTPUnauthorized, "Unauthorized" + IdResourceStrings_RSHTTPForbidden, "Forbidden" + IdResourceStrings_RSHTTPNotFound, "Not Found" + IdResourceStrings_RSHTTPMethodeNotallowed, "Method not allowed" + IdResourceStrings_RSHTTPNotAcceptable, "Not Acceptable" + IdResourceStrings_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" + IdResourceStrings_RSHTTPRequestTimeout, "Request Timeout" + IdResourceStrings_RSHTTPConflict, "Conflict" + IdResourceStrings_RSHTTPGone, "Gone" + IdResourceStrings_RSHTTPLengthRequired, "Length Required" + IdResourceStrings_RSHTTPPreconditionFailed, "Precondition Failed" + IdResourceStrings_RSHTTPRequestEntityToLong, "Request Entity To Long" + IdResourceStrings_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" + IdResourceStrings_RSHTTPUnsupportedMediaType, "Unsupported Media Type" + IdResourceStrings_RSHTTPInternalServerError, "Internal Server Error" + IdResourceStrings_RSStatusDisconnected, "Disconnected." + IdResourceStrings_RSStatusText, "%s" + IdResourceStrings_RSConnectTimeout, "Connect timed out." + IdResourceStrings_RSHTTPContinue, "Continue" + IdResourceStrings_RSHTTPOK, "OK" + IdResourceStrings_RSHTTPCreated, "Created" + IdResourceStrings_RSHTTPAccepted, "Accepted" + IdResourceStrings_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" + IdResourceStrings_RSHTTPNoContent, "No Content" + IdResourceStrings_RSHTTPResetContent, "Reset Content" + IdResourceStrings_RSHTTPPartialContent, "Partial Content" + IdResourceStrings_RSHTTPMovedPermanently, "Moved Permanently" + IdResourceStrings_RSHTTPMovedTemporarily, "Moved Temporarily" + IdResourceStrings_RSHTTPSeeOther, "See Other" + IdResourceStrings_RSHTTPNotModified, "Not Modified" + IdResourceStrings_RSHTTPUseProxy, "Use Proxy" + IdResourceStrings_RSNoExecuteSpecified, "No execute handler found." + IdResourceStrings_RSIdNoDataToRead, "No data to read." + IdResourceStrings_RSCanNotBindRange, "Can not bind in port range (%d - %d)" + IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" + IdResourceStrings_RSReadTimeout, "Read Timeout" + IdResourceStrings_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." + IdResourceStrings_RSNoCommandHandlerFound, "No command handler found." + IdResourceStrings_RSWS2CallError, "Error on call Winsock2 library function %s" + IdResourceStrings_RSWS2LoadError, "Error on loading Winsock2 library (%s)" + IdResourceStrings_RSMIMEExtensionEmpty, "Extension is empty" + IdResourceStrings_RSMIMEMIMETypeEmpty, "Mimetype is empty" + IdResourceStrings_RSMIMEMIMEExtAlreadyExists, "Extension already exits" + IdResourceStrings_RSStatusResolving, "Resolving hostname %s." + IdResourceStrings_RSStatusConnecting, "Connecting to %s." + IdResourceStrings_RSStatusConnected, "Connected." + IdResourceStrings_RSStatusDisconnecting, "Disconnecting." + 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" + IdResourceStrings_RSCannotAllocateSocket, "Cannot allocate socket." + IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." + IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." + IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." + IdResourceStrings_RSNotEnoughDataInBuffer, "Not enough data in buffer." + IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." + IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." + IdResourceStrings_RSThreadClassNotSpecified, "Thread Class Not Specified." + IdResourceStrings_RSFileNotFound, "File \"%s\" not found" + IdResourceStrings_RSOnlyOneAntiFreeze, "Only one TIdAntiFreeze can exist per application." + IdResourceStrings_RSNotConnected, "Not Connected" + IdResourceStrings_RSObjectTypeNotSupported, "Object type not supported." + IdResourceStrings_RSTerminateThreadTimeout, "Terminate Thread Timeout" + uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." + 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_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_MessageNotAssigned, "Message is NIL" + ComConst_SOleError, "OLE error %.8x" + 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_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_UnknownProxyInterface, "Unknown proxy interface \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for 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_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_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + 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)" + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" not exists." + uRODECConst_sInvalidStringFormat, "Input is not an valid %s Format." + uRODECConst_sInvalidFormatString, "Input can not be convert 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 to %d-%d bytes" + uRODECConst_sNotInitialized, "%s is not initialized call Init() or InitKey() before." + uRORes_err_InvalidIndex, "Invalid index %d" + uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" + uRORes_err_InvalidStream, "Invalid stream" + uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%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_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_SPageControlNotSet, "PageControl must first be assigned" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_srNone, "(None)" + Consts_SOutOfRange, "Value must be between %d and %d" + Consts_sAllFilter, "All" + 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_SPictureLabel, "Picture:" + Consts_SPictureDesc, " (%dx%d)" + Consts_SPreviewLabel, "Preview" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + 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_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + 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_SOKButton, "OK" + 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_SVMetafiles, "Metafiles" + Consts_SVEnhMetafiles, "Enhanced Metafiles" + Consts_SVIcons, "Icons" + Consts_SVBitmaps, "Bitmaps" + Consts_SMaskErr, "Invalid input value" + 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_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_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownExtension, "Unknown picture file extension (.%s)" + 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_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'" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + 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_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" + 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_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_SVarArrayWithHResult, "Unexpected variant or safe array error: %s%.8x" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" + 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_SPrivilege, "Privileged instruction" + 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_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" + SysConst_SEndOfFile, "Read beyond end of file" +END + diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc new file mode 100644 index 00000000..08f8a6c4 --- /dev/null +++ b/Source/Servidor/FactuGES_Server.rc @@ -0,0 +1,24 @@ +MAINICON ICON "E:\Codigo (Luis León)\Source\Iconos\Servidor.ico" +1 VERSIONINFO +FILEVERSION 2,0,4,0 +PRODUCTVERSION 2,0,4,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0904E4" + BEGIN + VALUE "FileVersion", "2.0.4.0\0" + VALUE "ProductVersion", "2.0.4.0\0" + VALUE "CompileDate", "jueves, 07 de junio de 2007 18:20\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C09, 1252 + END +END diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res new file mode 100644 index 00000000..ad6bb629 Binary files /dev/null and b/Source/Servidor/FactuGES_Server.res differ diff --git a/Source/Servidor/FactuGES_Server.rsb b/Source/Servidor/FactuGES_Server.rsb new file mode 100644 index 00000000..36f26e23 Binary files /dev/null and b/Source/Servidor/FactuGES_Server.rsb differ diff --git a/Source/Servidor/Utiles/uBusinessUtils.pas b/Source/Servidor/Utiles/uBusinessUtils.pas new file mode 100644 index 00000000..76ac5daa --- /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 + DARemoteService_Impl; + +{ Se utiliza en las reglas de negocio del servidor y + devuelve la conexión utilizada por el BusinessProcessor para + procesar los deltas. } +function GetBusinessProcessorConnection (ABusinessProcessor: TDABusinessProcessor): IDAConnection; +begin + if (ABusinessProcessor.Owner is TDARemoteService) then + Result := (ABusinessProcessor.Owner as TDARemoteService).Connection + else + Result := NIL; +end; + + +end. diff --git a/Source/Servidor/Utiles/uDatabaseUtils.pas b/Source/Servidor/Utiles/uDatabaseUtils.pas new file mode 100644 index 00000000..bf1af02c --- /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.pas b/Source/Servidor/Utiles/uReferenciasUtils.pas new file mode 100644 index 00000000..9aeadd20 --- /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 conexión 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 más 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 semáforo para volver a coger la parte entera si encontramos + //algún número + ParteCaracter := Copy(Referencia, 1, i); + Semaforo := False; + end; + end; + + LongitudParteEntera := Length(ParteEntera); + //Si no tenemos ningún número 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.pas b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas new file mode 100644 index 00000000..effb8514 --- /dev/null +++ b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas @@ -0,0 +1,84 @@ +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'); + +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 + + { + ¡¡¡¡¡ATENCIÓN!!! ¡¡¡¡¡¡¡¡MOVIDA MENTAL!!!!!!! + + En el caso de la tabla contactos hay definida en el + esquema una cláusula 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 después falla todo por + que trata de rellenar el parámetro :CATEGORIA que ya + no existe en el where por que lo ha pisado con el + where del cliente. + + SOLUCIÓN: si el cliente manda alguna cláusula where, + anteponer AND para unirla al where definido en el esquema. + } + + { Antes de filtrar ADataset, hay que saber si el cliente manda + alguna cláusula 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 sólo 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; + + + + + +end. diff --git a/Source/Servidor/Utiles/uServerAppUtils.pas b/Source/Servidor/Utiles/uServerAppUtils.pas new file mode 100644 index 00000000..f180c8a8 --- /dev/null +++ b/Source/Servidor/Utiles/uServerAppUtils.pas @@ -0,0 +1,29 @@ +unit uServerAppUtils; + +interface + +type + TRdxBalloonIcon = (biNone, biError, biInfo, biWarning); + +procedure ShowBalloonHint(const AMensaje: String; ABalloonIcon: TRdxBalloonIcon); + +implementation + +uses + Dialogs, Forms, uServerMainForm, JvTrayIcon; + +procedure ShowBalloonHint(const AMensaje: String; ABalloonIcon: TRdxBalloonIcon); +begin + with fServerForm.JvTrayIcon do + begin + if AcceptBalloons then + begin + BalloonHint('', ''); + BalloonHint('FactuGES (Servidor)', AMensaje, btInfo); + end; + Hint := 'FactuGES (Servidor)' + #10#13 + AMensaje; + end; +end; + +end. + diff --git a/Source/Servidor/Utiles/uSesionesUtils.pas b/Source/Servidor/Utiles/uSesionesUtils.pas new file mode 100644 index 00000000..28fc8941 --- /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/Utiles/uTiendaWebUtils.pas b/Source/Servidor/Utiles/uTiendaWebUtils.pas new file mode 100644 index 00000000..e23384d1 --- /dev/null +++ b/Source/Servidor/Utiles/uTiendaWebUtils.pas @@ -0,0 +1,46 @@ +unit uTiendaWebUtils; + +interface + +function HayConexionConTienda(const AODBCName : String; var AErrorMsg: String): Boolean; + +implementation + +uses + SysUtils, SqlExpr, Dialogs, ADODB; + +function HayConexionConTienda(const AODBCName : String; var AErrorMsg: String): Boolean; +var + ADOConnection1: TADOConnection; +begin + AErrorMsg := ''; + ADOConnection1 := TADOConnection.Create(nil); + try + with ADOConnection1 do + begin + Name := 'ADOConnection1'; + Provider := 'MSDASQL.1'; + LoginPrompt := False; + ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;' + + 'Data Source=' + AODBCName; + + try + Connected := True; + Result := True; + Connected := False; + except + on E : Exception do + begin + Result := False; + AErrorMsg := e.Message; + end; + end; + end; + finally + FreeAndNIL(ADOConnection1); + end; +end; + + + +end. diff --git a/Source/Servidor/srvEmpresas_Impl.dfm b/Source/Servidor/srvEmpresas_Impl.dfm new file mode 100644 index 00000000..ccd0c53b --- /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 00000000..45fde260 --- /dev/null +++ b/Source/Servidor/srvEmpresas_Impl.pas @@ -0,0 +1,49 @@ +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:} DARemoteService_Impl, + {Used RODLs:} DataAbstract_Intf, + {Generated:} FactuGES_Intf; + +type + { TsrvEmpresas } + TsrvEmpresas = class(TDARemoteService, IsrvEmpresas) + private + protected + { IsrvEmpresas methods } + function GetNextAutoInc(const GeneratorName: String): Integer; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk; + +procedure Create_srvEmpresas(out anInstance : IUnknown); +begin + anInstance := TsrvEmpresas.Create(NIL); +end; + +{ srvEmpresas } +function TsrvEmpresas.GetNextAutoInc(const GeneratorName: String): Integer; +begin +end; + +initialization + TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker); + +finalization + +end. diff --git a/Source/Servidor/uAcercaDe.dfm b/Source/Servidor/uAcercaDe.dfm new file mode 100644 index 00000000..f4ef3961 --- /dev/null +++ b/Source/Servidor/uAcercaDe.dfm @@ -0,0 +1,959 @@ +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 = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + 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/Servidor/uAcercaDe.pas b/Source/Servidor/uAcercaDe.pas new file mode 100644 index 00000000..a8b4a07f --- /dev/null +++ b/Source/Servidor/uAcercaDe.pas @@ -0,0 +1,47 @@ +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; + Image1: TImage; + 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 + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('LUIS LEÓN REPRESENTACIONES S.L.'); + end; + finally + FreeAndNil(Obj); + end; +end; + +end. diff --git a/Source/Servidor/uDataModuleServer.dfm b/Source/Servidor/uDataModuleServer.dfm new file mode 100644 index 00000000..22bfb411 --- /dev/null +++ b/Source/Servidor/uDataModuleServer.dfm @@ -0,0 +1,99 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 307 + Width = 382 + object HTTPServer: TROIndyHTTPServer + Encryption.UseCompression = True + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.CommandHandlers = <> + IndyServer.DefaultPort = 8099 + IndyServer.Greeting.NumericCode = 0 + IndyServer.MaxConnectionReply.NumericCode = 0 + IndyServer.ReplyExceptionCode = 0 + IndyServer.ReplyTexts = <> + IndyServer.ReplyUnknownCommand.NumericCode = 0 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Left = 136 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + AutoLoad = True + TraceActive = True + TraceFlags = [toPrepare, toExecute, toError, toStmt, toConnect, toTransact, toMisc] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + MaxPoolSize = 10 + PoolTimeoutSeconds = 60 + PoolBehaviour = pbWait + WaitIntervalSeconds = 1 + Connections = < + item + Name = 'MySQL' + ConnectionString = + 'ADO?AuxDriver=MSDASQL.1;Server=OSCommerce;UserID=root;Password=r' + + 'oot;' + Default = False + Tag = 0 + end + item + Name = 'IBX' + ConnectionString = + 'IBX?Server=localhost;Database=t:\Codigo (Luis LeOn)\BD\FACTUGES.' + + 'FDB;UserID=sysdba;Password=masterkey;Dialect=3;Charset=ISO8859_1' + + ';' + Default = True + Tag = 0 + end> + DriverManager = DriverManager + PoolingEnabled = True + 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 + SessionDuration = -1 + OnSessionDeleted = SessionManagerSessionDeleted + Left = 216 + Top = 16 + end + object JvLogFile1: TJvLogFile + FileName = 'ServerLog.txt' + Active = False + Left = 136 + Top = 144 + end + object DAIBXDriver: TDAIBXDriver + Left = 232 + Top = 80 + end + object DAADODriver: TDAADODriver + Left = 232 + Top = 136 + end +end diff --git a/Source/Servidor/uDataModuleServer.pas b/Source/Servidor/uDataModuleServer.pas new file mode 100644 index 00000000..25eb746d --- /dev/null +++ b/Source/Servidor/uDataModuleServer.pas @@ -0,0 +1,284 @@ +unit uDataModuleServer; + +interface + +uses + SysUtils, Classes, uDAEngine, uDAClasses, uDADriverManager, + uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, + uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, + JvAppStorage, JvAppRegistryStorage, uDAInterfaces, + JvComponentBase, uROEventRepository, + SyncObjs, JvLogFile, uDAIBXDriver, uDAADODriver; + +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; + DAADODriver: TDAADODriver; + 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); + 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 + DateUtils, JclFileUtils, ActiveX, Forms, Registry, Windows, Dialogs, + 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; + +function TdmServer.DarNuevaConexion: IDAConnection; +begin + with ConnectionManager do + Result := NewConnection(GetDefaultConnectionName, True); +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;'; +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); + 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.Acquire; + try + JvLogFile1.Add(AMensaje); + finally + FEscribirLog.Release; + end; +end; + +procedure TdmServer.RefrescarConexion; +begin + HTTPServer.Active := False; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; + + ConnectionName := ConnectionManager.GetDefaultConnectionName; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; + + with ConnectionManager.Connections.ConnectionByName('MySQL') do + ConnectionString := 'ADO?AuxDriver=MSDASQL.1;Server=' + FOSCServer + ';'; + + ShowBalloonHint('Conectado a ' + ConnectionName, biInfo); + + CoInitialize(nil); + HTTPServer.Active := TRUE; +end; + +procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); +begin + HTTPServer.Port := StrToInt(FServerPort); +end; + +end. diff --git a/Source/Servidor/uServerMainForm.dfm b/Source/Servidor/uServerMainForm.dfm new file mode 100644 index 00000000..250e6315 --- /dev/null +++ b/Source/Servidor/uServerMainForm.dfm @@ -0,0 +1,1077 @@ +object fServerForm: TfServerForm + Left = 806 + Top = 611 + BorderStyle = bsDialog + Caption = 'Administrador de puntos de venta - Server' + ClientHeight = 255 + ClientWidth = 371 + 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 + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 371 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Memo1: TMemo + Left = 24 + Top = 72 + Width = 329 + Height = 129 + Lines.Strings = ( + 'Memo1') + ScrollBars = ssVertical + TabOrder = 0 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Image1: TImage + Left = 0 + Top = 0 + Width = 371 + 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} + end + end + object Button1: TButton + Left = 24 + Top = 216 + Width = 75 + Height = 25 + Caption = 'Button1' + TabOrder = 2 + OnClick = Button1Click + 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...' + OnExecute = actConexionesExecute + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object XPManifest1: TXPManifest + Left = 40 + Top = 16 + end + object JvTrayIcon: TJvTrayIcon + IconIndex = 0 + DropDownMenu = PopupMenu1 + PopupMenu = PopupMenu1 + Delay = 300 + Snap = True + Visibility = [tvVisibleTaskBar, tvAutoHide] + Left = 8 + Top = 16 + end + object JvAppInstances1: TJvAppInstances + AutoActivate = False + OnCmdLineReceived = JvAppInstances1CmdLineReceived + Left = 136 + Top = 16 + end +end diff --git a/Source/Servidor/uServerMainForm.pas b/Source/Servidor/uServerMainForm.pas new file mode 100644 index 00000000..eb28cdd6 --- /dev/null +++ b/Source/Servidor/uServerMainForm.pas @@ -0,0 +1,130 @@ +unit uServerMainForm; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, + uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, + uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, frxClass, frxPreview, + JvComponent, JvTrayIcon, ActnList, Menus, XPMan, JvExControls, + JvGradient, JvGIF, ExtCtrls, JvComponentBase, JvAppInst; + +type + TfServerForm = class(TForm) + Memo1: TMemo; + PopupMenu1: TPopupMenu; + ActionList: TActionList; + actCerrar: TAction; + Cerrar1: TMenuItem; + actRestart: TAction; + actOpciones: TAction; + actConexiones: TAction; + Opciones1: TMenuItem; + Refrescarconexin1: TMenuItem; + N2: TMenuItem; + XPManifest1: TXPManifest; + JvTrayIcon: TJvTrayIcon; + Panel1: TPanel; + Image1: TImage; + JvGradient1: TJvGradient; + Button1: TButton; + actAcerca: TAction; + Acercade1: TMenuItem; + N1: TMenuItem; + JvAppInstances1: TJvAppInstances; + procedure actCerrarExecute(Sender: TObject); + procedure actRestartExecute(Sender: TObject); + procedure actOpcionesExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure actAcercaExecute(Sender: TObject); + procedure actConexionesExecute(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure JvAppInstances1CmdLineReceived(Sender: TObject; + CmdLine: TStrings); + private + { Private declarations } + public + { Public declarations } + end; + +var + fServerForm : TfServerForm; + +implementation + +uses + uDataModuleServer, uConfiguracion, uAcercaDe; + +{$R *.dfm} + +procedure TfServerForm.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfServerForm.actConexionesExecute(Sender: TObject); +var + i: Integer; +begin + JvTrayIcon.ShowApplication; + with Memo1.Lines do + begin + Clear; + for i := 0 to dmServer.ConnectionManager.Connections.Count - 1 do + Memo1.Lines.Add(dmServer.ConnectionManager.Connections[i].Name + ' -> ' + dmServer.ConnectionManager.Connections[i].ConnectionString); + end; +// JvTrayIcon.HideApplication; +end; + +procedure TfServerForm.actRestartExecute(Sender: TObject); +begin + dmServer.RefrescarConexion; +end; + +procedure TfServerForm.Button1Click(Sender: TObject); +begin + JvTrayIcon.HideApplication; +end; + +procedure TfServerForm.actOpcionesExecute(Sender: TObject); +var + AForm : TForm; +begin + AForm := TfConfiguracion.Create(NIL); + try + AForm.ShowModal; + finally + AForm.Free; + actRestart.Execute; + end; +end; + +procedure TfServerForm.FormCreate(Sender: TObject); +begin + JvTrayIcon.HideApplication; + JvTrayIcon.Active := True; +end; + +procedure TfServerForm.JvAppInstances1CmdLineReceived(Sender: TObject; + CmdLine: TStrings); +begin + dmServer.RefrescarConexion; +end; + +procedure TfServerForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + JvTrayIcon.Active := False; +end; + +procedure TfServerForm.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + +end. diff --git a/Source/Servidor/uUsersManager.pas b/Source/Servidor/uUsersManager.pas new file mode 100644 index 00000000..2db803ea --- /dev/null +++ b/Source/Servidor/uUsersManager.pas @@ -0,0 +1,95 @@ +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. diff --git a/Tools/mysql-connector-odbc-3.51.15-win32.msi b/Tools/mysql-connector-odbc-3.51.15-win32.msi new file mode 100644 index 00000000..b7beed95 Binary files /dev/null and b/Tools/mysql-connector-odbc-3.51.15-win32.msi differ